2013-12-13 3 views
1

Matlab에서 strcat로 만든 이름을 가진 행렬을 읽어야합니다. 예를 들어,문자열에서 행렬을 호출 할 수 있습니까?

person = 2; 
Index_XNY = strcat('Index_X',num2str(person),'Y'); 

Big_Index = find(Index_XNY(1,:)==1); 

이 예에서는 Index_XNY를 Index_X2Y로 바꿉니다.

Big_Index를 얻기 위해 여러 가지 시도를했지만 지금까지 성공하지 못했습니다. 호출해야하는 많은 데이터 요소가 있으므로이 작업을 수행 할 수 있습니다. 존재에 의존하는 것은 당신이 얼마나 싶습니다 물론

expr = strcat('find(Index_X',num2str(person),'Y(1,:)==1)'); 
Big_Index = eval(expr); 

, eval 기능이 작업을 수행하는 다른 방법의 많은 :

답변

2

당신은 문자열에서 매트랩 식을 평가하기 위해 eval 기능을 사용할 수 있습니다 끈에 넣고 얼마를 버릴 것인가.

+0

Perfect, 나는 eval을 사용하고 있었지만 전체 명령을 작성하지는 않았습니다. 지금은 너무 분명한데, 도와 주셔서 감사합니다! – Leverz

+4

@Levz 변수 이름을 따로 지정하는 대신 셀 배열을 만드는 것을 강력하게 고려해야합니다. 이것은 디버그하기 어렵고 일반적으로 나쁜 습관으로 간주되는'eval '에 대한 필요성을 완화시킬 것입니다. – Dan

+0

@ Dan 감사합니다 Dan, 변수 이름을 따로 지정하는 것이 무슨 뜻인지 모르겠지만 연구 할만한 것을 알려줄 것입니다. 내가 볼 수있는 예를 알고 있습니까? – Leverz

관련 문제