首先,我指定A
一个结构体和另外两个结构体:B
具有相同的元素顺序和C
具有不同的元素顺序。
A.x = 11;
A.y = 11;
B.x = 21;
B.y = 22;
C.y = 31; %// Note that I am specifying
C.x = 32; %// y first and x second
A = B; %// Works fine
A = C; %// Works fine
分配A
给B
和C
工作,这是我对结构的期望 - 元素的顺序应该无关紧要。
现在我指定A
为结构数组而不是结构,并尝试将其元素之一分别分配给B
和C
:
clear;
A(1).x = 11;
A(1).y = 12;
B.x = 21;
B.y = 22;
C.y = 31; %// Note that I am specifying
C.x = 32; %// y first and x second
A(1) = B; %// Works fine
A(1) = C; %// Error!
突然,MATLAB 抱怨错误:
不同结构之间的下标赋值
有谁知道为什么会发生这种情况以及如何以优雅的方式解决它?