2014-01-04 6 views
1

У меня есть 3D-матрица a и вектор a1. Размер a1 изменяется для каждой итерации. Теперь я хочу ввести этот вектор в определенную позицию, в которой определены 2-й и 3-й столбцы. Что-то вроде этого,Matlab, вставляя значение вектора в 3d-матрицу

a(:,3,4)=a1; 

Но оно получает ошибку "Assignment has more non-singleton rhs dimensions than non-singleton subscripts". Как я могу это решить?

ответ

0

Если размер a1 изменений на каждой итерации, вам необходимо предварительно выделить a до максимального размера и использовать явные индексы для передачи имущества

a = zeros(5,5,5) 
a(1:length(a1),3,4)=a1; 

В качестве альтернативы вы можете использовать сотовый массив:

a{3,4} = a1 

Ячейка ячеек может хранить векторы разной длины.

+0

большое спасибо. он работал ...: D – user3160420

+0

Рад, что это помогло. Не стесняйтесь [принимать и/или повышать] (http://meta.stackoverflow.com/help/someone-answers) :) – damienfrancois

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