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