相关疑难解决方法(0)

如何在不首先将其分配给局部变量的情况下索引函数返回的MATLAB数组?

例如,如果我想从中读取中间值magic(5),我可以这样做:

M = magic(5);
value = M(3,3);
Run Code Online (Sandbox Code Playgroud)

得到value == 13.我希望能够做到这样的事情之一:

value = magic(5)(3,3);
value = (magic(5))(3,3);
Run Code Online (Sandbox Code Playgroud)

免除中间变量.然而,MATLAB抱怨Unbalanced or unexpected parenthesis or bracket在第一个括号之前3.

是否可以在不首先将其分配给变量的情况下从数组/矩阵中读取值?

indexing matlab matrix return-value variable-assignment

350
推荐指数
7
解决办法
7万
查看次数

arrayFun的"反向"

我有一个"对象"结构数组OBJECT_ARRAY,我必须经常转换为对象结构的每个元素的单个数组.这可以使用arrayfun.它比单纯的裁判更乏味OBJECT_ARRAY(k).item1,但这就是The Mathworks选择这样做的方式.

在今天的这种情况下,我已经使用了那些单独的数组并计算了相应的派生值newItem,对于每个元素,我需要将其添加到原始结构数组中.所以我有一个数组newItems.

是否有一种直接的方法为每个对象进行分配,OBJECT_ARRAY以便(有效地)OBJECT_ARRAY(k).newItem = newItems(k)为每个索引k

我使用的是2015a版.

matlab structure

1
推荐指数
1
解决办法
48
查看次数