水仙花数
>> m=100:999; %设m是从100到999(所有的三位数)
>> m1=rem(m, 10); %rem(x,y)指x除以y的余数,所以m1就是每个三位数除以10的余数,也就是他们的个位
>> m2=rem(fix(m/10), 10); %fix是舍去小数的取整,m2指的是每个三位数除以10,再除以10的余数,也就是他们的十位
>> m3=fix(m/100); %同理,m3是每个三位数的百位
>> k=find(m==m1.*m1.*m1+m2.*m2.*m2+m3.*m3.*m3) %find返回矩阵中非0元素的位置,.*指的是同型矩阵中的元素分别相乘(不用*的原因是*指的是矩阵乘法),k表示水仙花数在100-999中的位置
k =
54 271 272 308
>> s=m(k) %根据水仙花数的位置,求得水仙花数
s =
153 370 371 407
>>
字符串处理
>> ch='ABc123d4e56Fg9';
>> subch=ch(1:5) %从ch中的第1个字符到第5个字符
subch =
'ABc12'
>> revch=ch(end:-1:1) %end指从ch的最后一位开始,-1指步数,从后往前一位,1指终点为第一位,所以结果是ch倒序
revch =
'9gF65e4d321cBA'
>> k=find(ch>='a'&ch<='z') %寻找ch中小写字母的位置
k =
3 7 9 13
>> ch(k)=ch(k)-('a'-'A') %在ch中,将小写字母转换为大写字母('a'-'A'为32,也就是小写字母和对应大写字母ASCII码的差值)
ch =
'ABC123D4E56FG9'
>> length(k) %k的长度,因为有3 7 9 13四个数,所以长度为4
ans =
4
>>