2012-08-14 3 views
0

GUI를 사용하여 가변을 설정하는 파일 이름을 할당하는 방법이 있습니까? 각 4 가지 색상 (파란색, 녹색, nir, 빨간색)을 포함하는 6 개의 파일 세트가 있다고 가정 해보십시오. 총 24 개의 파일이 있으므로 24 개의 변수가 필요합니다. 그리고 세트가 여러 파일을 지정하여 변수 이름을 설정하는 방법은 무엇입니까?

blue1 
green1 
nir1 
red1 

blue2 
green2 
nir2 
red2 

etc... 

는 현재 I는 사용자들이 원하는 파일을 선택하고 특정 변수에 할당해야 할 수 있습니다 사용자 정의 GUI를 creat에 가이드를 사용하기 위해 노력하고있어 같은 것으로 varialbes합니다. 나는 파일 디렉토리에 붙어있는 24 개의 popupmenus를 가지고 있고 사용자가 원하는 파일을 선택할 수 있도록 줄을 따라 뭔가를 생각하고있다. 그리고 나서 그 파일을 지정하고 변수 (예 : blue1)의 경로를 지정한다. 24 확인란

이의이 PopupMenu1로이 변수 blue1 및 CheckBox1을

if checkbox1 == checked

do import

elseif checkbox1 == unchecked

와 연결되어 있다고 가정 해 봅시다 if 문 경우와 연결할

fill with zeros

내가 만든 GUI의 기본 프레임을 가지고, 나는 문 등의 경우 ...

답변

0

, 그것은 bad practice (모습도 herehere) 변수 이름과 같이 정의 문자열 사용할 수있다 :

var1name = 'blue'; 
var2name = 'red'; 
% etc. 

% load data 
datablue=rand(4,1); 
datared =rand(4,1); 

% assign 
eval([var1name '1 = datablue(1);']); 
eval([var2name '1 = datared (1);']); 
% etc. 
eval([var1name '2 = datablue(2);']); 
eval([var2name '1 = datared (2);']); 
% etc 

그냥 일반 배열을 사용하는 것이 훨씬 쉽고 더 나은를, 변수 이름이 변경되지 않았거나 응용 프로그램 종속 변수 인 경우 (예 : databluedatared) 이미 예제가 있습니다. 그리고,

var1name = 'blue'; 
var2name = 'red'; 
sample(1).(var1name) = datablue(1); 
sample(1).(var2name) = datared (1); 
% ... 
sample(2).(var1name) = datablue(2); 
sample(2).(var2name) = datared (2); 

이들 중 일부를 시도하면 eval에 아주 좋은 이유, 리조트가있는 경우에만 :

당신이 사용자 정의 변수 이름을 원하는 경우 또 다른 옵션은 array of structs이 사용하는 것입니다!

0
for k = 1:6 
blue(k) = sprintf('blue%d', k); 
green(k) = sprintf('green%d', k); 
nir(k) = sprintf('nir%d', k); 
red(k) = sprintf('red%d', k); 
end 

이 생성됩니다 연관 선택한 다음 파일을 적용하는 방법에 단지 불분명입니다 변수 이름. 그런 다음 assignin (i believe) 또는 eval을 사용하여 변수 이름에 값을 설정할 수 있습니다. 당신이 사전에 변수 파일을 알고 있다면

관련 문제