Matlab中的多个左侧部分赋值

时间:2013-08-15 22:54:46

标签: matlab variable-assignment matrix-indexing

考虑以下矩阵:

a=[1,2,3]

因此

size(a)=[1,3]

我想将第二个维度3分配给变量n。什么是最有效的方式?

为什么以下不起作用?

[[],n]=size(a)

  n= num2cell(size(a)){2}

1 个答案:

答案 0 :(得分:1)

这可能是最简单的,适用于a任意数量的维度:

n = size(a,2);

如果保证a只有2个维度,您也可以使用

[ m, n ] = size(a);

如果您不需要第一个变量,在Matlab的最新版本中您可以编写

[ ~, n ] = size(a);

至于你尝试过的事情:

  • [[],n]=size(a)不起作用,因为[]不是您可以分配任何内容的变量。

  • n= num2cell(size(a)){2}不起作用,因为您无法在Matlab中直接索引。您需要一个临时变量:temp = num2cell(size(a)); n=temp{2}。或者处置num2cell并执行:temp = size(a); n=temp(2)