对不起,我是新来的MATLAB和想知道是否有人能帮助我,分配有更多的非单RHS尺寸大于非单标
我写的代码升技,
M= inital_conditions
time_vals = start_time:delta_t:end_time;
for iidx = 1 : length(time_vals)
i = time_vals(iidx);
new_conc = old_conc + delta_t*EQN(old_conc);
k(:,iidx)= new_conc;
old_conc=new_conc;
end
我不断收到错误赋值有更多非单实例rhs维度比非单实例下标。
我使用size(),并意识到k(:,iddx)是1 X 9,new_conc是1 x 8。任何人都可以提出一种方法来平衡双方?
感谢
EQN脚本
function output= EQN(M)
M = [90 90 90 90 90 90 90 90 90 90 90 90 90 90 90];
k1=1;
k2=1;
k3=1;
k4=1;
k5=1;
k6=1;
k7=1;
k8=1;
k9=1;
k10=1;
k11=1;
k12=1;
k13=1;
k14=1;
%k15=1;
output(1,1) = k14-k5*M(1)*M(2)-k4*M(1)*M(4)%-k1*M(5)*M(6)));
output(2,1) = -k5*M(1)*M(2);
output(3,1) = k5*M(1)*M(2);
output(4,1) = k13*M(14)-k3*M(9)*M(4)-k3*M(9)*M(4);
output(5,1) = k4*M(1)*M(4)- k1*M(5)*M(6);
output(6,1) = k10-k1*M(5)*M(6);
output(7,1) = k1*M(5)*M(6)-k2*M(7);
output(8,1) = k2*M(7)-k14*M(8);
output(9,1) = k11-k3*M(9)*M(4);
output(10,1) = k3*M(9)*M(4);
output(11,1) = 0;
output(12,1) = k6*M(10)*M(11)-k7*M(12);
output(13,1) = k7*M(12)-k12*M(13);
output(14,1) = k12*M(13)-k13*M(14);
output(15,1) = k12*M(13);
你需要让'k'为'8 x 9' – Suever
根据你现在提供的代码,它看起来像'new_conc'应该有15个元素,不是?请确保在循环之前清除'k'('clear k'),以确保旧数据不会干扰 – Suever
当我使用whos时,它声明new_conc是15 X 15,但我在其他问题上看到过,使用大小()和它的未来作为1 8 – code1