matlab中的for特征
循环语句中最重要的for语句和普通的变成语言有点区别:
经典的for循环写法:没有问题但是没有充分利用matlab的特点。
%fileName:stringDo2.m
function []=stringDo2(C) siz=max(size(C)); for i=1:siz c=C(i); disp(['before chang: ', c]); if c>='A' && c<='Z' c=lower(c); elseif c>='a' && c<='z' c=upper(c); elseif c>='0' && c<='9' %c=str2double(c).^2; c=num2str(str2num(c).^2); else c=c; end disp(['after chang: ', c]); end end
充分利用matlab的数据特征的for循环,千万不要忘了,matlab中数据默认是矩阵。
%fileName:stringDo.m
function []=stringDo(C) for c=C disp(['before chang: ', c]); if c>='A' && c<='Z' c=lower(c); elseif c>='a' && c<='z' c=upper(c); elseif c>='0' && c<='9' %c=str2double(c).^2; c=num2str(str2num(c).^2); else c=c; end disp(['after chang: ', c]); end end
测试及结果:
>> C='A 2 \ a'; >> stringDo(C) before chang: A after chang: a before chang: after chang: before chang: 2 after chang: 4 before chang: after chang: before chang: \ after chang: \ before chang: after chang: before chang: a after chang: A >> stringDo2(C) before chang: A after chang: a before chang: after chang: before chang: 2 after chang: 4 before chang: after chang: before chang: \ after chang: \ before chang: after chang: before chang: a after chang: A
很明显两个功能完全一样,但是充分利用matlab特性的for明显更有优势些。
人就像是被蒙着眼推磨的驴子,生活就像一条鞭子;当鞭子抽到你背上时,你就只能一直往前走,虽然连你也不知道要走到什么时候为止,便一直这么坚持着。
浙公网安备 33010602011771号