MATLAB 基础

时间:2024-03-02 10:36:24

1.sum用法

当x为矩阵时

sum(x):对矩阵的每一列进行求和,得到一个行向量

sum(x,2):对矩阵中每一行进行求和,得到一个列向量

sum(x(:)):对矩阵中所有元素进行求和,得到的是一个数

2.exist用法

exist(\'b\',\'var\'):可以用来判断是否存在变量(var)b

3.bsxfun用法

bsxfun(fun,A,B):对两个矩阵A,B之间进行一些运算,运算方式由fun参数决定,bsxfun()可以对A,B自动扩维,而不必使用repmat

1.判断A和B的维度是否相同,如果相同,直接运算;

2.如果A和B的维度不同,则A或者B必须有一个在某个维度上是1,该函数进行扩维后,进行相应运算

常用的操作:

 4.sort用法

clear all;
clc;
close all;
B = [2,3,6;0,2,8];

[b,idx]=sort(B);%每一列进行升序排序,b为排序后的矩阵,idx为索引矩阵,每一个元素代表行号

输出:

b =

0 2 6
2 3 8

idx=

2 2 1
1 1 2

B = [2,3,6;9,2,8];

 [bb,index] = sort(B,2) %矩阵每一行进行升序排序,bb为排序后的矩阵,index为索引矩阵,为排序前元素的列号

bb =

2 3 6
2 8 9

index =

1 2 3
2 3 1

5.issparse,sparse

 if issparse(aa)%确定aa的存储类是否为稀疏矩阵, 返回值为0,1

   aa = full(aa)   %full函数:把稀疏矩阵转为全矩阵

sparse():创建稀疏矩阵

栗子:

a = [0,0,0,1;1,0,0,0;0,0,1,0]
b = sparse(a)%非零数字从左到右表示,三元组存储,分别为(行号,列号,数值)

b =

(2,1) 1
(3,3) 1
(1,4) 1

c=full(b)

c =

0 0 0 1
1 0 0 0
0 0 1 0

 6 sprintf( format,variable )

  category=‘car’;

  sprintf(\'%s.bmp\',category)

  I = imread(sprintf(\'%s.bmp\',category));
  load(sprintf(\'model_%s_graz.mat\',category));

  %s表示字符串

  将数据格式转换成字符串

  方便加载数据集

 7 查找.mat文件中变量名

  whos(\'-file\',\'文件名.mat\')

  8 rgb2gray函数

  rgb2gray是matlab内部一种处理图像的函数,通过消除图像色调和饱和度信息同时保留亮度实现将将RGB图像或彩色图转换为灰度图像,即灰度化处理的功能,调用这个功能的格式是I = rgb2gray(RGB),意思是将真彩色图像RGB转换为灰度强度图像I 。

   9 ndims()

  求矩阵维度

  10 im2double()

  im2double 将输入转换为double类.若输入是uint8类 uint16 类 logical类则函数将其转换为范围[0,1]之间的类.若输入是double类,则函数im2double将返回一个与输入相等的数组.

  11 mresize函数

功能:改变图像的大小。

用法:B = imresize(A,m)
B = imresize(A,m,method)
B = imresize(A,[mrows ncols],method)

B = imresize(...,method,n)
B = imresize(...,method,h)

imrersize函数使用由参数method指定的插值运算来改变图像的大小。method的几种可选值:
\'nearest\'(默认值)最近邻插值
\'bilinear\'双线性插值
\'bicubic\'双三次插值
B = imresize(A,m)表示把图像A放大m倍
B = imresize(...,method,h)中的h可以是任意一个FIR滤波器(h通常由函数ftrans2、fwind1、fwind2、或fsamp2等生成的二维FIR滤波器)。

 12 mean(A,3)

  

  13 nargin

  在程序多个输入变量,多个输出变量的情况,在变量对应不匹配的情况下,增加程序的适应性。

  14 ceil:向上取整

  15 fspecial

  此函数用于建立预定义的滤波算子

  G = fspecial(\'gaussian\', f_wid, sigma);

  高斯低通滤波

  H = FSPECIAL(\'gaussian\',HSIZE,SIGMA):

  HSIZE:表示模板尺寸,可以是向量也可以是一个标量。sigma表示滤波器的标准值,单位为像素

   G是具有标准差sigma(正)的size尺寸的旋转对称高斯低通滤波器

 16 高斯滤波

  高斯滤波是根据一类高斯函数的形状来选择权值的线性平滑滤波器。高斯平滑滤波器对于抑制服从正态分布的噪声非常有效,高斯参数sigma决定了高斯函数的宽度。高斯平滑又叫低通滤波。所谓低通,信号高频部分受到削弱,信号低频部分可以通过,可以很好地去除噪声。