在没有赋值的情况下,matlab在变量赋值和索引期间不同地处理冒号吗?

时间:2016-09-27 13:23:50

标签: matlab

例如我有一个1 * 30结构a.field,当我在命令窗口中输入一个(:)。字段时,它只是迭代地显示一个(1).field,a(2).field,...但是当我试图将一个(:)。字段分配给另一个变量b时,b得到的只是一个(1).field。

顺便说一句,如果我试图将一个(:)。字段传递给一个函数,Matlab只会抛出一个错误“输入参数太多”。

背后的机制是什么?我的猜测是matlab威胁冒号在赋值期间与第一个元素相对,是真的吗?

1 个答案:

答案 0 :(得分:0)

你需要添加括号,否则matlab不明白你试图存储数组:

b = [a(:).field]

提供类似结果的另一个选项:

b = horzcat(a(:).field)