2013-07-17 4 views
0

Я работаю с программой, и мне нужно получить доступ к данным, которые хранятся в ячейках, но я не могу это понять. Это то, что я знаю:Доступ к ячейкам в MATLAB

Существует пять матриц, X1, X2, ..., X5. Создана ячейка, C = {X1 X2 ... X5} Затем мы создаем таблицу умножения c {i, j} = C {i} * C {j} для i, j = 1: 5 , поэтому c {i, j} является ячейкой 5by5. Наконец, cx {i, j} создается путем изменения каждой ячейки c {i, j}. Каждый элемент cx {i, j} состоит из первых двух строк каждого матричного элемента c {i, j}, как это, cx {i, j} = {c {i, j} (1 ,:) c {i, j} (2, :)}

Таким образом, cx {i, j} является ячейкой 5 на 5. Я хочу иметь возможность набирать cx {i, j} в MATLAB и получать числовое значение, но я просто получаю структуру ячейки. Я попробовал [cx {i, j}], но это не работает. Какая команда позволяет мне получать числовые значения? Благодарю.

+1

Можете привести пример. – Marcin

ответ

1

Проблема:

>> cx{i,j} = {c{i,j}(1,:) c{i,j}(2,:)} 

Создать 1x2 ячейку с двумя 1x5 векторами. Это НЕ матрица 5x5.

Возможное решение:
Вы можете создать cx{i,j} следующего образом

>> cx{i,j} = [ c{i,j}(1,:) ;c{i,j}(2,:) ] 

Примечание квадратных скобок [ и запятая ;, что создает cx{i,j}.
Теперь cx{i,j} является матрицей 2x5, и к ней можно получить доступ и просмотреть, просто набрав cx{i,j}.

Несколько комментариев

  • Для этих типов задач (и многих других), то лучше использовать отладчик Matlab, чтобы точно понять, что происходит.

  • Лучшее not to use i and j as variable names in Matlab.

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