【问题标题】:Get row from matrix of functions从函数矩阵中获取行
【发布时间】:2017-05-02 06:52:04
【问题描述】:

我的代码看起来像这样

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 行的函数行。

【问题讨论】:

标签: matlab function matrix


【解决方案1】:

在 MATLAB 中,有一个名为 reshape 的命令。只需根据需要提供尺寸即可。

rowvector = reshape(your_matrix,[1,m*n])

我希望这能解决问题。

【讨论】:

  • 哦,谢谢你告诉我,我不知道在 Matlab 中有一个名为 reshape 的命令,只需根据需要给出大小 rowvector = reshape(your_matrix,[1,m*n]) 我希望这应该这样做诀窍
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-08
  • 1970-01-01
相关资源
最近更新 更多