如何更新struct字段?

时间:2014-02-21 00:40:27

标签: matlab

我有一个结构,例如struct.a = {zeros(4)}。现在,我想用a更新[4 4 4 4]的第一行。如何访问struct.a的第一行并更新它?结果应该是带有cell2mat(struct.a(1)) = [4 4 4 4;0 0 0 0;0 0 0 0;0 0 0 0]的矩阵。

1 个答案:

答案 0 :(得分:2)

一起使用花括号和常规括号:

>> struct.a = {zeros(4)}
struct = 
    a: {[4x4 double]}
>> struct.a{1}(1,:) = [4 4 4 4]; % or just assign a scalar (e.g. = 4;)
>> struct.a{1}
ans =
     4     4     4     4
     0     0     0     0
     0     0     0     0
     0     0     0     0

顺便说一句,您不需要在struct.a中存储单元格。这也很好:

struct.a = zeros(4);
struct.a(1,:) = 4;

另外,重要的是,不要将struct用作变量名,因为它是MATLAB中的关键字。