【发布时间】:2018-05-17 21:26:53
【问题描述】:
我有一个类似的嵌套结构数组
A(1).B(1).var1 = 1;
A(1).B(2).var1 = 2;
现在我想将var1 的值更改为使用向量x = [3; 4] 的元素作为每个相应的值。
结果应该是
A(1).B(1).var1 = 3;
A(1).B(2).var1 = 4;
我试过了
% Error : Scalar structure required for this assignment.
A(1).B.var1 = x;
% Error : Insufficient number of outputs from right hand side of equal sign to satisfy assignment.
[A(1).B.var1] = x(:);
奇怪的是,如果 x 是一个元胞数组,则第二种语法有效
x = {3, 4};
[A(1).B.var1] = x{:};
幸运的是,使用 mat2cell 将我的数值向量转换为元胞数组并不太复杂,但这是在没有 for 循环的情况下执行此分配的唯一方法吗?
对嵌套结构数组进行多次赋值的正确语法是什么?我可以使用数值向量还是必须使用元胞数组?
【问题讨论】:
-
您希望每个元素
var1等于[3;4]还是要将 3 分配给第一个,将 4 分配给第二个? -
3 到第一个,4 到第二个。
标签: matlab