String to Variable conversion?

So first I declare some variables:
data.variable=12
v1='variable'
n=1
The results:
strcat('data.', v1)
data.variable
But
strcat('data.', (strcat('v',num2str(n))))
data.v1
Instead of data.variable. I'm assuming that this is because v1 is a string. What should I do to make the second command return data.variable?

 채택된 답변

per isakson
per isakson 2013년 1월 24일

1 개 추천

You might find dynamic field names useful. Doc says:
Generate Field Names from Variables
[...]
For example, create a field name from the current date:
currentDate = datestr(now,'mmmdd');
myStruct.(currentDate) = [1,2,3]

추가 답변 (2개)

Evgeny Pr
Evgeny Pr 2013년 1월 24일

0 개 추천

So that's that?
strcat('data.', evalin('base', strcat('v',num2str(n))))
Azzi Abdelmalek
Azzi Abdelmalek 2013년 1월 24일

0 개 추천

Why are n't you using one array to save your variables, instead of using, v1,v2,...
For example
data.variable1=10;
variable={'variable1','variable2','variable3'}
out=data.(variable{1})

댓글 수: 2

Gregory
Gregory 2013년 1월 24일
That's probably a better way to do it; I'm learning matlab as I code, I'll try this as well. Thanks.
Jan
Jan 2013년 1월 24일
And you can decrease the level of indirection further by using data.variable{1} directly instead of hiding the index in the fieldname.

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Operators and Elementary Operations에 대해 자세히 알아보기

질문:

2013년 1월 24일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by