2016-12-22 20 views
0

"P_dot_ij_om_ ii(i、1)= P_dot_ij(k、2);"という行に問題があります。 基本的に私は行列P_dot_ij_om_1 = []を1からi まで、そして次の行に宣言しました。scilabで文字列宣言された変数にアクセスする方法

データを入力したいとします。 P_dot_ij_om_ + ii(i、1)= P_dot_ij(k、2); ここで、iiは数字です。正しい表現は何ですか?


rows=round(k/360); 
i=1; 
ii=1; 
k=1; 
while ii <= rows 

    Pdot_names(ii,1)=string("P_dot_ij_om_"+ string(ii)); 

    disp(Pdot_names(ii)) 
    execstr(Pdot_names(ii)+'=[]');   // declare indexed matrix 

    while i<361 

     P_dot_ij_om_+ii(i,1)=P_dot_ij(k,2); 
     // P_dot_ij_om_+ii(i,2)=P_dot_ij(k,3); 

     disp(k) 
     k=k+1; 
     i=i+1; 
    end 
ii=ii+1; 


end 

+0

Welcome to Stackoverflow!あなたの質問に正解がある場合は、「同意する」ことを忘れないでください。 – Attila

答えて

0

以下のコードは動作しますが、一般的には、文字列変数を作成することをお勧めされていません。はるかに速く、実装が容易な代替案があります。このスレッド:そう、私は唯一のkP_dot_ijが何であるかを推測することができるので、How can I create variables Ai in loop in scilab, where i=1..10

rows = 2; 
P_dot_ij = [10,20,30;11,21,31;12,22,32]; 
i=1; 
ii=1; 
k=1; 
while ii <= rows 

    //Pdot_names(ii,1)=string("P_dot_ij_om_"+ string(ii)); The firs 'string' is unnecessary 
    Pdot_names(ii,1)="P_dot_ij_om_"+string(ii);  

    disp(Pdot_names(ii)) 
    execstr(Pdot_names(ii)+'=[]');   // declare indexed matrix 

    while i<4 

     //P_dot_ij_om_+ii(i,1)=P_dot_ij(k,2); 
     execstr("P_dot_ij_om_"+string(ii)+"("+string(i)+",1)=P_dot_ij("+string(k)+",2)");   // P_dot_ij_om_+ii(i,2)=P_dot_ij(k,3); 
     execstr("P_dot_ij_om_"+string(ii)+"("+string(i)+",2)=P_dot_ij("+string(k)+",3)"); 

     disp(k) 
     k=k+1; 
     i=i+1; 
    end 
    ii=ii+1; 
end 

disp(P_dot_ij_om_1,"P_dot_ij_om_1"); 
disp(P_dot_ij_om_1,"P_dot_ij_om_2"); 

も次回は、自己完結コード例を投稿してください。

関連する問題