Ошибка Matlab с vertcat и массивами ячеек

Я пытаюсь объединить два массива следующим образом:

z={ '35' {'test'} ; '45' {'test'}}
z={z{:} ;{'55' {'test'}}}

Я бы ожидал, что результат будет

 {35 {'test'}
 45  {'test'}
 55 {'test'}}

но вместо этого я получаю:

Ошибка при использовании vertcat

Размеры объединяемых матриц не согласованы.

Что я забыл? Спасибо.


person Carbon    schedule 26.06.2013    source источник
comment
Вам нужны числа или числовые строки, например 35 или '35'?   -  person Oleg    schedule 27.06.2013


Ответы (1)


Ошибка вызвана z{:}, который перечисляет все содержимое z "в" вектор N by 1, и когда вы пытаетесь собрать все элементы с помощью внешнего {}, возникает ошибка из-за несоответствия размеров.

Возможно, вы используете слишком много { }, и вы можете объединить массивы ячеек с помощью [ ]:

z = { '35' 'test'
     '45'  'test'};
z = [z; {'55' 'test'}]

В командном окне появится:

z = 
    '35'    'test'
    '45'    'test'
    '55'    'test'
person Oleg    schedule 26.06.2013
comment
Извините, я бы хотел, чтобы второй элемент был массивом вложенных ячеек, если это возможно. Можно ли их еще погладить? Ничего, разобрался: z={ '35' {'test'} ; '45' {'тест'}}; z=[z;{'55' {'сумасшедший'}}; Спасибо! - person Carbon; 27.06.2013