【问题标题】:How to add an element to the end of a matrix?如何将元素添加到矩阵的末尾?
【发布时间】:2015-12-21 18:49:24
【问题描述】:

我正在尝试将一个元素添加到矩阵的末尾,但我不知道矩阵的长度。

EvantCal = 999*ones(1,2);
.
.
.
.
%// in a different function
EventCal(end + 1) = [1, 3]; 
%// the numbers are random
.
.
.

这是我运行代码时遇到的错误:

在赋值A(I) = B中,B和I中的元素个数必须相同。

【问题讨论】:

  • EvantCal (end+1,:) = [1, 3];

标签: matlab matrix


【解决方案1】:

错误是因为您试图填充 1-by-2 矩阵(即 [1, 3],这也是错误消息中的 B ) 转换为 EventCal 的单个元素(请注意,错误消息中的 I 是您的 end+1,它是单个元素)。不如试试

EventCal(end+1,:) = [1, 3]

这里的: 指的是所有列,在您的情况下是 2。因此 1 行(end+1 是一个数字)和 2 列因此与您的 2-by*1* 您尝试附加的矩阵。

另外,如果性能不是主要问题,您还可以使用矩阵连接(但这是less efficient,而不是索引方法):

EventCal = [EventCal; [1,3]]

【讨论】:

  • 谢谢,这可行,但不是我尝试的方式,我需要它转到下一行,所以它看起来像一个矩阵而不是一个数组
  • 对不起,刚刚重读了这个问题,看到了你的初始化。查看编辑
  • @user2336124 没问题,如果解决了您的问题,请标记为正确。
猜你喜欢
  • 1970-01-01
  • 2013-02-14
  • 2013-12-21
  • 1970-01-01
  • 1970-01-01
  • 2011-01-04
  • 1970-01-01
  • 2023-01-12
相关资源
最近更新 更多