0
我有兩個結構,A
和B
,我想將B
中的所有字段複製到A
。我不能做一個簡單的A=B;
任務,因爲A
有許多其他字段,我想保持不受影響。現在我一直按名稱分別分配每個字段。有沒有一種很好的方法可以將B
中的所有字段複製到A
,而無需單獨分配每個字段?我能夠想到的最好的方法是使用A.(fieldname)
語法將它們全部分配到一個循環中,但我希望可能有一條單線解決方案。將所有字段複製到較大結構
我有兩個結構,A
和B
,我想將B
中的所有字段複製到A
。我不能做一個簡單的A=B;
任務,因爲A
有許多其他字段,我想保持不受影響。現在我一直按名稱分別分配每個字段。有沒有一種很好的方法可以將B
中的所有字段複製到A
,而無需單獨分配每個字段?我能夠想到的最好的方法是使用A.(fieldname)
語法將它們全部分配到一個循環中,但我希望可能有一條單線解決方案。將所有字段複製到較大結構
如果您只想複製一些字段,那麼動態字段引用是最好的方法。
fields_to_copy = {'one', 'two'};
for k = 1:numel(fields_to_copy)
A.(fields_to_copy{k}) = B.(fields_to_copy{k});
end
如果您不希望覆蓋的任何字段A
,你可以創建你的字段列表以下列方式
fields_to_copy = setdiff(fieldnames(B), fieldnames(A));
或者複製,如果你在A
有特定的字段你想保持
fields_to_copy = setdiff(fieldnames(B), {'keep', 'these', 'fields'});