在matlab中将列表添加到矩阵中

时间:2011-02-21 19:27:52

标签: matlab matrix prepend

我想问这个问题:

如果我有这个矩阵:

magnetT=NaN(Maxstep,2);  

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

我怎么写呢?

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

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

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

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

因为它给了我:订阅的分配维度不匹配。

==>中的错误128号大都市     magnetT(I,2)= [T,总和(MLAT(:))./ L2];

由于

1 个答案:

答案 0 :(得分:1)

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

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

>> anyData = NaN(3, 2);
>> newCellArray = {anyData; {0, 1}}

newCellArray = 

    [3x2 double]
    {1x2 cell  }

如果您尝试将结果连接到数字矩阵中,以下内容将有所帮助:

>> Maxstep=3;
>> magnetT=NaN(Maxstep,2);
>> newArray = [magnetT; 0 1]

newArray =

   NaN   NaN
   NaN   NaN
   NaN   NaN
     0     1

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

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

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

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

或换句话说:

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