我遇到麻烦就是“P_dot_ij_om_ + ii(i,1)= P_dot_ij(k,2);” 基本上我已经声明矩阵P_dot_ij_om_1 = []从1到i 并在下一行。
我想输入数据,例如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 :(得分:0)
下面的代码有效,但一般不建议创建字符串变量。有更快,更容易实现的替代方案,参见例如这个帖子: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");
下次请发布自包含的代码示例,否则我只能猜出k
和P_dot_ij
是什么。