我有一个结构,例如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]
的矩阵。
答案 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中的关键字。