【问题标题】:prepend a list to a matrix in matlab在matlab中将列表添加到矩阵中
【发布时间】:2023-03-24 10:42:01
【问题描述】:

我想问这个:

如果我有这个矩阵:

magnetT=NaN(Maxstep,2);  

并希望在其前面加上“{0 1}”

我该怎么写?

另外,如果我在mathematica 中有这个循环:

magnetT[[i]] = {T, Apply[Plus, Flatten[mlat]]/L2}

matlab中的等价物是不是这个???

magnetT(i,2)=[T ,sum(mlat(:))./L2];

因为它给了我 :Subscripted assignment dimension mismatch.

==> 大都市 128 处的错误 磁铁T(i,2)=[T,sum(mlat(:))./L2];

谢谢

【问题讨论】:

  • 第二个问题,mlat的尺寸是多少,L2的尺寸是多少?
  • 好的,问题是我做了magnetT(i,2) insted of magnetT(i,:)

标签: matlab matrix prepend


【解决方案1】:

我会尝试回答你的第一个问题这两个问题。

您询问是否将 NaN 数组添加到 {0,1} 之前,即 cell array。任何数据对象都可以很容易地捆绑到一个元胞数组中:

>> anyData = NaN(3, 2); >> newCellArray = {anyData; {0, 1}} 新细胞阵列 = [3x2 双] {1x2 单元格}

如果您尝试将结果连接成一个数字矩阵,以下方法会有所帮助:

>> 最大步长=3; >> 磁铁T=NaN(Maxstep,2); >> newArray = [magnetT; 0 1] 新数组 = 南南 南南 南南 0 1

对于第二个问题,MATLAB 抱怨试图将向量存储在 magnetT 的一个元素中。计算时:

磁铁T(i,2)=[T,sum(mlat(:))./L2];

右侧将创建一个向量,而左侧则尝试将该向量存储在需要标量的位置。我不确切知道您要实现什么目标,而且我对 Mathematica 语法也不是很熟悉,但也许您需要这样做:

磁铁T(ii,:) = [T sum(mlat(:))./L2];

或者,换句话说:

磁铁T(ii,1) = T; 磁铁T(ii,2) = sum(mlat(:)) ./ L2;

【讨论】:

  • 好的,谢谢。我正在尝试“[[0 1];magnetT]”,这就是它不起作用的原因。如果您有任何想法,我正在解决第二个问题。
  • @George - 我为你的第二个问题添加了一个可能的答案。如果这没有回答,那么尝试打破magnetT(i,2)=[T ,sum(mlat(:))./L2];将代码分成多个步骤以缩小错误范围。
  • 好吧!问题是我做了磁铁T(i,2) insted of magnetT(i,:)!所以,右边是:magnetT(i,:)=[T , sum(mlat (:))./L2]..谢谢!
  • 没问题!通过将其设置为答案来结束这个问题怎么样?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多