1.算术运算
>> x=[1:3;4:6;7:9]
x =
1 2 3
4 5 6
7 8 9
>> y=[9:7;6:4;3:1]
y =
空的 3×0 double 矩阵
>> %上面的式子得不到想要的结果。
>>
>> y = [9: - 1:7;6: - 1:4;3: - 1:1]
y =
9 8 7
6 5 4
3 2 1
>> x*y
ans =
30 24 18
84 69 54
138 114 90
>> x.*y
ans =
9 16 21
24 25 24
21 16 9
>> x./y
ans =
0.1111 0.2500 0.4286
0.6667 1.0000 1.5000
2.3333 4.0000 9.0000
>> x=[30,45,60,90]
x =
30 45 60 90
>> %求y=sinx*cosx,x=30°,45°,60°,90°
y=sind(x).*cosd(x)
y =
0.4330 0.5000 0.4330 0
>> %显示为分数形式
>> format rat
>> y=sind(x).*cosd(x)
y =
585/1351 1/2 585/1351 0
>> %结果有点奇怪
>> sind(30)
ans =
1/2
>> cosd(30)
ans =
1170/1351
>> %如果要使计算结果保留根号,则应该用符号运算,这里都是数值运算
2.关系运算
>> x=[1,2,3,4;5,6,7,8;9,9,9,9]
x =
1 2 3 4
5 6 7 8
9 9 9 9
>> y=x==0
y =
3×4 logical 数组
0 0 0 0
0 0 0 0
0 0 0 0
>> y=x==2
y =
3×4 logical 数组
0 1 0 0
0 0 0 0
0 0 0 0
3.逻辑运算
>> 3==8-5<0
ans =
logical
0
>> 3==8-5
ans =
logical
1
>> (3==8)-5
ans =
-5
>> %个人建议还是加括号,虽然不会错,但是可读性会更好
>> %建议这种小程序最好自己写一遍
%求水仙花数
%加分号可以不显示运算结果
x=[100:999];
>> %先取出个十百三个矩阵
>> a=fix(x/100);%百位
>> b=rem(fix(x/10),10);%十位
>> c=rem(x,10);%个位
>> k=find(x==(a.*a.*a+b.*b.*b+c.*c.*c))
k =
54 271 272 308
>> result=x(k)
result =
153 370 371 407
>> k=find(x==(a^3+b^3+c^3))
错误使用 ^ (line 51)
用于对矩阵求幂的维度不正确。请检查并确保矩阵为方阵并且幂为标量。要执行按元素矩阵
求幂,请使用 '.^'。
>> k=find(x==(a.^3+b.^3+c.^3))
k =
54 271 272 308
4.字符串
>> %当创建的字符串矩阵的不同行的元素个数不同时,可以用空格来调节
>> str1=['abcd '];str2=['abcdefgh'];str3=[' efgh'];%str1加了四个空格,str3前加了四个空格
>> all=[str1;str2;str3]
all =
3×8 char 数组
'abcd '
'abcdefgh'
' efgh'
>> %找出一句话中的'BUG',并修改
>> line='I love you.It''s a BUG,which like the BUG in matlab.'
line =
'I love you.It's a BUG,which like the BUG in matlab.'
>> key=findstr(line,'BUG')%查找是短字符串在长字符串里查找。
key =
19 38
>> result=strrep(line,'BUG','lucky')
result =
'I love you.It's a lucky,which like the lucky in matlab.'