如果我有这个矩阵:
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];
由于
答案 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;