如何在Matlab中进行Erlang风格的模式匹配?

时间:2016-01-12 16:51:09

标签: matlab

我已经看到你可以在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

1 个答案:

答案 0 :(得分:3)

对于作业[a, b] =,右侧必须是comma separated list,而不是数组。遗憾的是,没有办法直接使用数组执行此操作,首先必须将其转换为单元格。

使用单元格的最小示例:

x={2,3};
[a, b]=x{:};

以数组开头的最小示例:

x=[2,3];
x=num2cell(x);
[a, b]=x{:};