Matlab: изменение размера матриц - PullRequest
1 голос
/ 11 ноября 2011

вот моя проблема с Matlab. Мне нужно написать функцию Matlab, которая копирует все данные из типа структуры в матрицу. Проблема в том, что каждая запись может иметь разную длину. Итак, что я делал до сих пор, это перебираю все эти записи, чтобы предварительно рассчитать окончательный размер матрицы.

%Calculate final size of Matrix
nFieldsY = length(CompleteData.Y);
nFieldsX = length(CompleteData.X);
maxRowNumber = 0;
maxColNumber = nFieldsY + nFieldsX;

for j = 1:nFieldsY
  l_x = length (CompleteData.X(1,j).Data);
  l_y = length (CompleteData.Y(1,j).Data);
  compAr = [maxRowNumber l_x l_y];
  maxRowNumber = max(compAr);
end

ResultMatrix = zeros(maxRowNumber, maxColNumber);

Таким образом, «ResultMatrix» представляет максимум данных, которые могут быть сохранены. Теперь я хотел бы заменить первые n записей в столбце m матрицы. Остальная часть столбца должна быть заполнена нулями. Несмотря на все мои усилия, я получаю ошибку "несоответствие размеров".

Ценю любую помощь. Спасибо

1 Ответ

3 голосов
/ 11 ноября 2011

Примерно так

ResultMatrix(1:n,m) = n_entries

, где n_entries - это n x 1 матрица значений, которые вы хотите поместить в столбец.

1:n выбирает строки *От 1009 * до n из ResultMatrix, а столбец m picks m.

...