Это потому, что struct('c', {1 2})
не делать то, что вы (предположительно) думают, что он делает - создание структуры с одним полем, c
со значением {1, 2}
. Скорее всего, это создание структуры 1х2 массива, чье первое значение (то есть, answer(1).c
) является 1, и чье второе значение (то есть, answer(2).c
) равен 2.
См http://www.mathworks.com/help/matlab/ref/struct.html и прочитать параграф «Если значение является cell array ... "для получения дополнительной информации.
Как и другие плакаты, обертывая его в double фигурные скобки работают. Зачем? Прочитайте эту документацию, на которую я только что указал вам, и пройдите через нее, используя {{1, 2}}
, и вы увидите, что она работает точно так, как вы хотите.
Работает в Freemat, но не правильно. Пробовали двойные фигурные скобки? 'struct ('c', {{1 2}})' –
@ arne.b: Спасибо, вот и все! На самом деле не думал о добавлении двойных фигурных скобок: s Не могли бы вы разместить свой комментарий в качестве ответа, пожалуйста, чтобы я мог его принять? – HappyPy