1

我想问这个:

如果我有这个矩阵:

magnetT=NaN(Maxstep,2);  

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

我该怎么写?

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

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

matlab中的等价物不是吗???

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

因为它给了我:下标分配维度不匹配。

==> 大都会在 128 磁体T(i,2)=[T,sum(mlat(:))./L2] 处出错;

谢谢

4

1 回答 1

2

我将尝试回答你的第一个问题。

您询问有关将NaN数组添加到 {0,1} 的问题,这是一个元胞数组。任何数据对象都可以很容易地捆绑到一个元胞数组中:

>> 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;
于 2011-02-21T20:21:30.690 回答