Matlab 如何更新结构字段?

Matlab 如何更新结构字段?,matlab,Matlab,我有一个结构,例如struct.a={zeros(4)}。现在我想用[4]更新a的第一行。如何从结构a访问第一行并更新它?结果应为带有cell2mat(结构a(1))=[4;0 0 0 0;0 0 0 0 0 0 0 0]的矩阵,同时使用花括号和规则括号: >> struct.a = {zeros(4)} struct = a: {[4x4 double]} >> struct.a{1}(1,:) = [4 4 4 4]; % or just assign a

我有一个结构,例如
struct.a={zeros(4)}
。现在我想用
[4]
更新
a
的第一行。如何从结构a访问第一行并更新它?结果应为带有
cell2mat(结构a(1))=[4;0 0 0 0;0 0 0 0 0 0 0 0]
的矩阵,同时使用花括号和规则括号:

>> 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中是一个关键字