我已经看到你可以在Matlab中进行Erlang风格的模式匹配有时候。
例如,这可行:
[a, b] = size([2, 3])
a =
1
b =
2
虽然这不是:
[a, b] = [2, 3]
Too many output arguments.
为了获得以下结果,输出必须采用什么形式?
[a, b] = [2, 3]
a =
2
b =
3
答案 0 :(得分:3)
对于作业[a, b] =
,右侧必须是comma separated list,而不是数组。遗憾的是,没有办法直接使用数组执行此操作,首先必须将其转换为单元格。
使用单元格的最小示例:
x={2,3};
[a, b]=x{:};
以数组开头的最小示例:
x=[2,3];
x=num2cell(x);
[a, b]=x{:};