2014-02-21 2 views
1

저는 구조가 있습니다. 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] 인 행렬이어야합니다.구조체 필드를 업데이트하는 방법은 무엇입니까?

답변

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에서 셀을 저장할 필요가 없습니다. 이것도 괜찮 : 그것은 MATLAB의 키워드이기 때문에

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

이 또한 중요한 변수 이름으로 struct을 사용하지 마십시오.

관련 문제