Re: For 双重循环,显示问题

楼主: celestialgod (天)   2015-07-25 17:09:34
※ 引述《ccchain (阳光沙滩脚踏车~)》之铭言:
: ※ 引述《celestialgod (攸蓝)》之铭言:
: : 你要的应该是这样?
: : for i = 1:6
: : for j = (i+1):6
: : eval(['compare', num2str(i), num2str(j), '= dist(A(', ...
: : num2str(i), '), B(', num2str(j), ');']);
: : end
: : end
: 请问 只能用eval存有变量跟文字混在一起? 还是有其它方法可以答到同样效果?
: For i=1:3
: For j=1:3
: Compare (I,j)=i*j ;
: End
: End
: 因为若是用eval, 我不知道该怎么取
: eval(['compare', num2str(I),num2str(j)...])
: 是直接拿compare (I)(j)?
: 谢谢。刚练习matlab不久,问题太浅,请各位大大耐心指导,感恩。
你可以考虑其他的资料格式: cell
out = cell(3, 3);
for i = 1:3
for j = 1:3
out{i, j} = i*j;
end
end
每一个cell可以存struct (field), ND array, ...各种类型的变量
作者: profyang (prof)   2015-07-25 17:14:00
疴...只是存个i*j为啥要用到cell...直接out=zeros(3,3)然后out(i,j)=i*j; 这样不好?何况只是相乘的话 我会先用meshgrid展开他再直接.*就不用for循环了真的是bsxfun比较快 看来是meshgrid展开花到额外资源了

Links booklink

Contact Us: admin [ a t ] ucptt.com