2013-04-16 3 views
-1

에 문자열 요소의 값에 도달 :이 배열의이 같은 배열이 matlab에

vars = {'X1','X2'}; 

모든 요소가이 특별한 범위 등 : 내가 원하는 루프에서 지금

X1 = [0.5,11.0]; 
X2 = [0.15,8.55]; 

각 요소 값 (즉, X1 값은 [0.5,11.0])에 도달하려면 pls를 도와 줄 수 있습니까?

보다도, Elnaz

답변

0

를 호출 할 것 , 하나의 옵션은 을 사용하여 값을 얻는 것입니다 :

X1 = [1,2]; 
X2 = [3,4]; 
vars = {'X1','X2'}; 

for ii = 1:length(values) 
    vals{ii} = eval(vars{ii}); 
end 

이 값은 변수 vals에 값 (즉, vals = {[1,2], [3,4]})을 저장합니다.

그러나 eval을 사용하는 것은 일반적으로 매우 나쁜 생각입니다. 당신이하고 싶은 것에 따라 아마도 그것을하는 더 좋은 방법이있을 것입니다. 예를 들어, 관심있는 변수를 셀 배열에 저장하거나 구조의 필드로 저장할 수 있습니다.

+0

첫 번째 또는 두 번째 또는 세 번째 항목의 값에 어떻게 도달 할 수 있습니까? 내 구조에? 즉, vars = { 'X1', 'X2', 'X3', 'X4', 'Y'}; X1 = [0.5,11.0]; X2 = [0.15,8.55]; X3 = [1.64, 142.5]; X4 = [1.0, 165.0]; Y = [64.470001,8546.030273]; res = struct (char (vars (1)), X1, char (vars (2)), X2, char (vars (3)), X3, ... char char (vars (5)), Y); *** 루프에서 a = X1 및 b = [0.5,11.0] c = X2 및 d = [0.15,8.55]에 도달해야합니다. – user2286747

0

내가 당신이 원하는 무엇을 나는 확실 해요 구조에 모든 것을 저장,하지만 것 :

다음
clc,clear all,close all 
vars = {'X1','X2'}; 
X1 = [0.5,11.0]; 
X2 = [0.15,8.55]; 
res = struct(char(vars(1)),X1,char(vars(2)),X2 

나는 잘

res.X1 
res.X2 
+0

신속한 답장을 보내 주셔서 감사합니다. 실제로 나는 다음과 같은 것을 필요로합니다. res.char (vars (1)) – user2286747

+0

루프를 사용하여 배열 요소의 값에 액세스해야합니다. 루프에서 나는 = aars = vars (i) b = vars (i) .value = a = X1과 b = [0.5,11.0]을 참조 할 수있다. – user2286747

0

또한 시도 할 수 있습니다 : 나는 암로의 대답 here에서 가져온

vars = {'X1','X2'}; 
X1 = [0.5,11.0]; 
X2 = [0.15,8.55]; 

vals = containers.Map(vars,{X1,X2}); 

vals('X1') 
vals('X2') 

. 다음은 결과물입니다.

ans = 

    0.5000 11.0000 


ans = 

    0.1500 8.5500