1、sum求和
a=sum(A)  %列求和
b=sum(A,2) %行求和
c=sum(A(:)) %矩阵求和
假定A为一个矩阵:
sum(A)以矩阵A的每一列为对象,对一列内的数字求和。
sum(A,2)以矩阵A的每一行为对象,对一行内的数字求和。
通过下面的例子,可以明白:
>> a=[1 2 3; 4 5 6; 7 8 9]
a =
1  2  3
4  5  6
7  8  9
>>sum(a)
ans =
12  15  18
>>sum(a,2)
ans =
6
15
24
>>sum(a(:))
ans =
45
2、length是求某一矩阵所有维的最大长度
3、求mask中大于等于1的元素的个数,sum((sum(mask>=1)))
RAW格式:
Raw 格式是一种灵活的文件格式,用于在应用程序与计算机平台之间传递图像。这种格式支持具有 Alpha 通道的 CMYK、RGB 和灰度图像以及无 Alpha 通道的多通道和 Lab 图像。

Raw 格式由一串描述图像中颜信息的字节构成。每个像素都以二进制格式描述,0 代表黑,255 代表白(对于具有 16 位通道的图像,白值为 65535)。Adobe Photoshop 指定描述图像所需的通道数以及图像中的任何其他通道。可以指定文件扩展名 (Windows)、文件类型 (Mac OS)、文件创作者 (Mac OS) 和标题信息。
4、关于调试的快捷键
常用的调试方法。
(1) 设置或清除断点:使用快捷键F12。
(2) 执行:使用快捷键F5。
(3) 单步执行:使用快捷键F10。
(4) step in:当遇见函数时,进入函数内部,使用快捷键F11。
(5) step out:执行流程跳出函数,使用快捷键Shift+F11。
(6) 执行到光标所在位置:非常遗憾这项功能没有快捷键,只能使用菜单来完成这样的功能。
(7) 观察变量或表达式的值:将鼠标放在要观察的变量上停留片刻,就会显示出变量的值,当矩阵太大时,只显示矩阵的维数。
(8) 退出调试模式:没有设置快捷键,使用菜单或者快捷按钮来完成。
5、max(max(A))求矩阵A中的最大元素。
6、matlab Attempt to reference field of non-structure array
如对于mydemo.m文件的运行,可以使用如下的方法:
1)、run('mydemo')
2)、直接输入mydemo
3)、打开mydemo.m文件,点击run来运行该文件。
7、input dispfprintf用法
(1)用关键字input初始化变量
关键字input用来提示使用者和直接从键盘输入初始化变量.当脚本文件(Script files),它可以用来提示使用者输入.input函数在命令窗口(The Command Windows)显示出提示语句,并等待用户返回一个值.例如,下面的赋值语句:
my_val=input(‘enter an input value:’)
当这个语句被编译时,MATLAB打印出字符串enter an input value:,然后等待用户回复.始果要只输入一个数,那么只需要直接键入,而如果要输入一个数组,则必须带上中括号([ ]).在另一种情况下,当回车键按下时.在窗口输入的任何值都会被储入变量my_val.如果只按下回车键,那么这个变量中存储了一个空矩阵.
如果input函数中有字符’s’为它的第二个参数,那输入的数据被当字符串.因此,语句
in1=input(‘enter data’);
Enter data:1.23
把数值1.23存储到in1 .而语句
in2=input(‘enter data:’,’s’)
把字符串1.23存储到in2.
(2)disp函数
另一种显示数据的方法是用disp函数。disp需要一个数组参数,它将它的值将显示在命令窗口(The Command Windows)中。如是果这个数组是字符型(char),那么包含在这个数组中的子符串将会打印在命令窗口(The Command Windows)中。
此函数可联合num2str(将一个数转化为字符串)int2str(将一个整形数转化为字符串)来产生新的信息,显示在命令窗口(The Command Windows)matlab二进制字符串转数组中。例如,下面的语句将“the value of pi=3.1416”显示在命令窗口(The Command Windows)中。第一句创建了一个字符型数组,第二句用于显示这个数组。
str=[‘the value of pi=’  num2str(pi)];
disp(str);
(3)用fprintf函数格式化输出数据
fprintf函数显示数据是一种十分简便方法。fprintf函数显示带有相关文本的一个或多个值,允许程序员控制显示数据的方式。它在命令窗口打印一个数据的一般格式如下:
fprint(format,date)
其中format 用于代表一个描述打印数据方式的子符串,date代表要打印的一个或多个标量或数组。Format包括两方面的内容,一方面是打印内容的文本的提示;另一方面是打印的格式。例如,函数将会打印出‘The value of pi is  3.14,后面带有一个换行符。转义序列%6.2代表在本函数中的第一个数据项将占有6个字符宽度,小数点后有2位小数。
fprintf函数有一个重大的局限性,只能显示复数的实部。当我们的计算结果是复数时,这个局限性将会产生错误。在这种情况下,最好用disp显示数据。
2.4  fprintf函数format字符中的特殊字符
format string
结果
%d 把值作为整数来处理
%e 用科学记数法来显示数据
%f 用于格式化浮点数,并显示这个数
%g 用科学记数格式,或浮点数格式,根据那个短,并显示之
\n 转到新的一行
注意:
    1.文档中的文本及MATLAB中的指令必需在英文状态下输入;指令中的标点符号也必需在英文状态下输入。
    2.MATLAB指令在M-book中的运行速度比在指令窗口中慢得多。 
8、利用冒号表达式建立一个向量
冒号表达式可以产生一个行向量,一般格式是:    e1:e2:e3其中e1为初始值,e2为步长,e3为终止值。在MATLAB中,还可以用linspace函数产生行向量。其调用格式为:linspace(a,b,n)其中a和b是生成向量的第一个和最后一个元素,n是元素总数。显然,linspace(a,b,n)与a:(b-a)/(n-1):b等价。
9、在MATLAB中,矩阵元素按列存储,先第一列,再第二列,依次类推
例如A=[1,2,3;4,5,6];A(3)                ans =  2
显然,序号(Index)与下标(Subscript )是一一对应的,以m×n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。其相互转换关系也可利用sub2ind和ind2sub函数求得。
10、在MATLAB中,定义[]为空矩阵
给变量X赋空矩阵的语句为X=[]。注意,X=[]与clear X不同,clear是将X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为0。
11、魔方矩阵
魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。对于n阶魔方阵,其元素由1,2,3,…,n2共n2个整数组成。MATLAB提供了求魔方矩阵的函数magic(n),其功能是生成一个n阶魔方阵。
其中 n大于等于3
12、将101~125等25个数填入一个5行5列的表格中,使其每行每列及对角线的和均为565
M=100+magic(5)
13、format rat    %以有理形式输出
14、求(x+y)5的展开式
在MATLAB命令窗口,输入命令:pascal(6)矩阵次对角线上的元素1,5,10,10,5,1即为展开式的系数。
15、A\B等效于A的逆左乘B矩阵,也就是inv(A)*B,而B/A等效于A矩阵的逆右乘B矩阵,也就是B*inv(A)。对于矩阵运算,一般A\B≠B/A
16、点运算
在MATLAB中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。点运算符有.*、./、.\和.^。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。
17、D=diag(1:5); 
是指对角线的元素为1,2,3,4,5 即一个5*5的矩阵的对角线元素
18、矩阵的伪逆
如果矩阵A不是一个方阵,或者A是一个非满秩的方阵时,矩阵A没有逆矩阵,但可以到一个与A的转置矩阵A‘同型的矩阵B,使得:
A·B·A=A
B·A·B=B
此时称矩阵B为矩阵A的伪逆,也称为广义逆矩阵。在MATLAB中,求一个矩阵伪逆的函数是pinv(A)。
矩阵的迹
矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和。在MATLAB中,求矩阵的迹的函数是trace(A)。
19、try语句先试探性执行语句组1如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2。
20、for语句
for语句的格式为:
for 循环变量=表达式1:表达式2:表达式3
循环体语句
    end
其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值。步长为1时,表达式2可以省略。
21、读入一副RGB图像,要将其转换为二值图像
ans=imread('origin.jpg');
temp=rgb2gray(ans);
temp1=im2double(temp);
imshow(temp1)
22、matlab改变图像的像素大小
temp1为.mat文件,大小为265x265,现在将其变为128x128
temp2=imresize(temp1,[128,128]);
imread('no2.jpg');
temp=rgb2gray(ans);
temp1=im2double(temp);
imshow(temp1)
temp2=imresize(temp1,[128,128]);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。