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) 和标题信息。
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小时内删除。
发表评论