좋은 일 MATLAB 전문가는 MATLAB : 구조에 값을 저장
나는 실행의 모든 루프 배열로 저장하는 내 작업 공간 (단일 값) 변수의 긴 목록을 가지고있다.다음은 간단한 예입니다 : 작업 공간에서 변수 :
a = 1;
b = 2.2;
c = 3.4;
d = [0.5 0.7 1 1.2 1.5];
e = [-15 -10 -5 0 5 10 15 20];
serial = {'WTZ00151'};
model = {'336F'};
NameList = {'a';'serial';'model'};
1) 여기서, I는 Data
구조로 단지 단일 값 변수를 저장하고있어,하지만 내가하고 싶은 것을 모든입니다 루프, Data
구조의 배열에 단일 값을 저장하십시오. 내가 루프에서이 작업을 실행하면
varList = who;
Data = struct;
fields = fieldnames(Data, '-full');
fieldSizes = structfun(@(field) length(field),Data);
% removing arrays from structure
for lst = 1:length(fieldSizes)
if fieldSizes(lst) > 1
Data = rmfield(Data,fields(lst));
end
end
Data =
Data: [1x1 struct]
a: 1
b: 2.2000
c: 3.4000
index: 10
model: {'336F'}
serial: {'WTZ00151'}
그래서, for i = 1:5
, Data
는 다음과 같이해야 다음 for
루프를 코딩하는 방법에 대한
Data =
Data: [1x1 struct]
a: [1 1 1 1 1]
b: [1x5 double]
c: [1x5 double]
index: [10 10 10 10 10]
model: {1x5 cell}
serial: {1x5 cell}
어떤 아이디어?
2) 작업 공간에 너무 많은 변수가 있으므로 을 사용하여 구조에 모든 변수를 저장하는 대신 저장해야하는 많은 변수 목록을 가지고 있습니다. 그러면 원하지 않는 것을 필터링 할 수 있습니다. 변수 이름 목록을 사용하여 (텍스트 파일에서 가져옴 : NameList
) 어떤 것을 저장해야하는지 알려주십시오. NameList의 변수 이름을 사용하면 구조 값이 호출되지 않습니다. 많은 감사
우수한 응답. 당신의 도움을 주셔서 대단히 감사합니다. – Bensa