2015年2月27日 星期五

num2str的簡易教學

這篇是寫給自己看的 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

[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