2013-02-21 8 views
3

C является ячейкой, состоящей из нескольких векторов:Доступ к вектору в ячейке в Matlab

C = {[1, 2], [2, 3]}; 

Я хочу прочитать первую запись первого вектора в C. Но я не могу использовать следующее:

C{1}[2] 

Я получаю следующее сообщение об ошибке:

Error: Unbalanced or unexpected parenthesis or bracket.

Как я могу сделать его прочитать значение?

+2

matlab использует '()' для доступа к элементам векторов, а не '[]'. – ThijsW

ответ

6

Вы можете получить доступ к отдельным элементам матриц в массиве ячеек, как это:

C{n,m}(ii,jj); 

Это даст вам элемент (ii,jj) матрицы с индексом (n,m) массива ячеек.

Таким образом, для конкретного примера,

val = C{1,1}(1,1) (или val = C{1}(1))

присвоит значение первого элемента первого вектора в массиве ячеек переменной val.

+2

Лучше не использовать ['i' и' j' в качестве переменных в Matlab] (http://stackoverflow.com/questions/14790740/using-i-and-j-as-variables-in-matlab) – Shai

+1

Я знаю, но я не могу с этим поделать, это слишком большая привычка, просто используя 'i' и' j'. Я изменил его на большинство (я думаю) широко используемых альтернатив, 'ii' и' jj'. – ThijsW

+0

Я предпочитаю использовать 1i и 1j, если требуется мнимая единица, как указано [shoelzer] (http://stackoverflow.com/a/14861015/3058047). На мой взгляд, это наиболее читаемое и последовательное решение этой проблемы – tc88

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