2015-10-25 7 views
0

В MATLAB я хочу объявить 4D-матрицу, где последнее измерение может принимать два значения (вектор с двумя столбцами - это последнее измерение). Проблема в том, что нули (...) принимают только скаляры, поэтому я не могу объявить вектор в объявлении матрицы. Любые мысли о том, как это сделать?Вектор внутри многомерного массива - MATLAB

В нижеследующем, как объявить этот массив так, чтобы 'output' фактически выглядел как output=zeros(some_number,2);

beg=zeros(nsubj,nvids,nmark,output); 
+0

Вы хотите, чтобы матрица 5D была не 4D-матрицей. Я сдаюсь после 3D! – IKavanagh

+0

Хорошо, я вижу. Спасибо! – skirmishdirmish

ответ

0

Для того, чтобы иметь последнее измерение содержит вектор с 2-колонки, вам нужно определить 2 колонки во втором измерении вашей декларации следующим образом:

>> beg = zeros(4, 2, b, c);

Вот первый двухколоночный вектор последнего измерения:

>> beg(:,:,1,1) 

ans = 

0  0 
0  0 
0  0 
0  0 

Надеюсь, это поможет!

+0

Если бы это было так, то A = нули (4, 4, 4, 4); 'и' A = нули (4, 4, 4, 2); 'возвратили бы 4 и 2 столбца соответственно для' A (: ,:, 1) ', но они оба не возвращают 4 столбца. – IKavanagh

+0

Правильно, потому что в обоих случаях второе измерение вашей матрицы имеет длину 4. Посмотрите на мой ответ еще раз ... Если вам нужен вектор с двумя столбцами в ЛЮБОМ измерении, вторая запись в «нулях»() ", должно быть" 2 ". –

+0

Вы еще не ответили на вопрос. Вы дали 4D ответ на вопрос, который действительно ищет ответ 5D. – IKavanagh

Смежные вопросы