【问题标题】:Variable size matrix in MatLabMatLab中的可变大小矩阵
【发布时间】:2019-10-14 02:51:11
【问题描述】:

对于我的静态作业的一部分,我必须创建一个 MATLAB 函数,它将“n”力作用在系统上并将它们转换为 nx3 矩阵。是的,“n”是有意的,行数应该随着力的大小而变化。从那里,我需要能够使它成为一个增广矩阵,并解决一个合力,yada yada ...我只是不知道从哪里开始设置一个行数未知的矩阵。任何帮助将不胜感激,谢谢。

【问题讨论】:

  • 那么只要知道n的值就分配一个nx3矩阵...

标签: matlab matrix


【解决方案1】:

如果您在知道n 的值之前可以避免创建矩阵,那么您应该这样做。 在那个阶段你只需分配它做

mat = nan(n,3);  % or zeros(n,3) if you'd prefer.

然后改变元素在做什么

mat(row_to_change,:) = new_1_by_3_values;

但是,如果您确实需要动态调整矩阵的大小(有时这是必需的,但出于效率原因应尽可能避免),那么您可以使用初始化变量,

mat = []; % empty matrix

然后您可以随时将新数据附加到矩阵中

mat = [mat; new_1_by_3_values];

mat(end+1,:) = new_1_by_3_values;

【讨论】:

  • 请不要推荐mat = [mat; new_1_by_3_values],效率非常低。另一种形式 (end+1) 是正确的。差异并不小。这是巨大的!请参阅此问答对以了解差异:stackoverflow.com/questions/48351041/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-20
  • 2016-03-08
相关资源
最近更新 更多