這篇是寫給自己看的 XD
ex:
b1(src_node(1))=1;
b2(src_node(2))=1;
b3(src_node(3))=1;
b4(src_node(4))=1;
b5(src_node(5))=1;
b6(src_node(6))=1;
先複製其中一個出來
b1(src_node(1))=1;
然後前面加上 eval(['
後面加上 '])
所以目前變成
eval(['b1(src_node(1))=1;'])
接著再把變數的部分, 改成 ' num2str(i) '
注意空格, num2str前後都要有空格才行
然後就變成了
eval(['b' num2str(i) '(src_node(' num2str(i) '))=1;'])
然後再用一個for迴圈
for i=1:6
eval(['b' num2str(i) '(src_node(' num2str(i) '))=1;'])
end
這樣就等同於一開始那六行指令 XD
--
感覺shell script的寫法比較直覺? XDDDD
2015年2月27日 星期五
[matlab] fprintf 與 num2str 的整合 XD
終於弄出來了 XD
這樣就只要放個for迴圈, 就可以寫入一堆資訊
不然原本的做法要一個一個慢慢打 ˊ_>ˋ
原:
fprintf(fid, 'flow1 \t %.4f \n', XX(src_node(1)));
fprintf(fid, 'flow2 \t %.4f \n', XX(src_node(2)));
fprintf(fid, 'flow3 \t %.4f \n', XX(src_node(3)));
fprintf(fid, 'flow4 \t %.4f \n', XX(src_node(4)));
fprintf(fid, 'flow5 \t %.4f \n', XX(src_node(5)));
fprintf(fid, 'flow6 \t %.4f \n', XX(src_node(6)));
fprintf(fid, 'flow7 \t %.4f \n', XX(src_node(7)));
fprintf(fid, 'flow8 \t %.4f \n', XX(src_node(8)));
fprintf(fid, 'flow9 \t %.4f \n', XX(src_node(9)));
fprintf(fid, 'flow10\t %.4f \n', XX(src_node(10)));
新:
for i=1:10
flow_value=eval(['XX(src_node(' num2str(i) '))']);
fprintf(fid, ['flow' num2str(i) ' \t %.4f \n'], flow_value);
end
這樣就只要放個for迴圈, 就可以寫入一堆資訊
不然原本的做法要一個一個慢慢打 ˊ_>ˋ
原:
fprintf(fid, 'flow1 \t %.4f \n', XX(src_node(1)));
fprintf(fid, 'flow2 \t %.4f \n', XX(src_node(2)));
fprintf(fid, 'flow3 \t %.4f \n', XX(src_node(3)));
fprintf(fid, 'flow4 \t %.4f \n', XX(src_node(4)));
fprintf(fid, 'flow5 \t %.4f \n', XX(src_node(5)));
fprintf(fid, 'flow6 \t %.4f \n', XX(src_node(6)));
fprintf(fid, 'flow7 \t %.4f \n', XX(src_node(7)));
fprintf(fid, 'flow8 \t %.4f \n', XX(src_node(8)));
fprintf(fid, 'flow9 \t %.4f \n', XX(src_node(9)));
fprintf(fid, 'flow10\t %.4f \n', XX(src_node(10)));
新:
for i=1:10
flow_value=eval(['XX(src_node(' num2str(i) '))']);
fprintf(fid, ['flow' num2str(i) ' \t %.4f \n'], flow_value);
end
訂閱:
文章 (Atom)