来自一个笨拙的背景我不得不使用Matlab几天前开始一个新项目 .
切换到Matlab非常简单,因为语法在某种程度上与numpy的语法相当 . 但是,有一件事我无法以令人满意的方式“转换” .
在numpy中,我能够根据数组的行(或“矩阵”,即Matlab术语)分配变量,如下所示:
import numpy as np
arr = np.array([1, 2, 3])
a, b, c = arr
print(a, b, c)
arr = np.array([[1, 2, 3], [11, 22, 33]])
for row in arr:
a, b, c = row
print(a, b, c)
这似乎很优雅 . 然而,我没有找到在Matlab中执行此操作的等效方法,而无需使用索引表示法访问矩阵的每个元素 .
是否存在执行变量赋值的等效方法,如我在Matlab中的Python片段的第二部分所示,或者我是否必须使用显式索引表示法?
1 回答
在MATLAB中真正做到这一点的唯一方法是使用单元数组的内容comma-separated list来"distribute"到多个变量 . 不足之处在于它要求您首先使用num2cell之类的东西将行(数字数组)转换为单元格数组 .