Я попытаюсь ответить на ваш первый вопрос на оба вопроса.
Вы спрашивали о добавлении массива NaN к {0,1}, который является массивом ячеек . Любые объекты данных могут быть легко объединены в массив ячеек:
>> 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;