matlab - Matlab 中的多个左侧部分赋值

标签 matlab variable-assignment matrix-indexing

考虑以下矩阵:

a=[1,2,3]

因此

size(a)=[1,3]

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

为什么以下内容不起作用?

[[],n]=size(a)

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

最佳答案

这可能是最简单的,适用于 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) .

关于matlab - Matlab 中的多个左侧部分赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18263226/

相关文章:

python - MATLAB 矩阵乘法性能比 NumPy 快 5 倍

c++ - 在matlab中移动文件

matlab - 删除空结构字段 Matlab

c# - 如何在已编译的 .NET 程序集中使用 Matlab 对象?

R 索引数组。如何使用第 3 维矩阵索引 3 维数组

matlab - 用matlab中的其他值替换矩阵中的索引

c# - 多重赋值(字段=属性=值)

r - 如何用查找表中的值标签替换数字代码?

scala += 字符串上的赋值异常

matlab - 如何删除矩阵中的特定行