我的代码看起来像这样
x = [100 0 0]
f = @(c,x) [v1(c,x) 0 0];
X = rk4(x, f, a, b, c);
x = X(end,:);
f = @(c,x) [v2(c,x) s1(c,x) 0];
X = [ X; rk4(x, f, a, b, c) ];
x = X(end,:);
f = @(c,x) [v2(c,x) s2(c,x) r(c,x)];
X = [ X; rk4(x, f, a, b, c) ];
x = X(end,:);
也就是说,在每一步,我只是改变了三个函数f,所以我想知道是否可以这样做:
f = @(c,x) [v1(c,x) 0 0; v2(c,x) s1(c,x) 0; v2(c,x) s2(c,x) r(c,x)]
x = [100 0 0]
X = []
for i=1:3
X = [X ; rk4(x, f(i,:), a, b, c)]
x = X(end,:);
end
我知道不可能完全按照我的方式行事(显然f(i,:)只返回函数f的矩阵,而不是行#i的函数行。
答案 0 :(得分:0)
在MATLAB中,有一个名为reshape
的命令。根据需要给出尺寸。
rowvector = reshape(your_matrix,[1,m*n])
我希望这可以解决问题。