how to make a variable name from a string

2013a version
>> test='eye'
>> value = [5,5,3]
value =
5 5 3
>> eval([sprintf(test) '= data+1']);
Index exceeds matrix dimensions.
How to fix this error? Thank you for helping!

 채택된 답변

kjetil87
kjetil87 2013년 8월 16일
편집: kjetil87 2013년 8월 16일

0 개 추천

The error should not appear, your code looks to work exept for the part of 'data' , should this instead be value?
test='eye';
value=[1,2,3];
eval([sprintf(test) '=value+1'])
eye =
2 3 4
The index exceeds matrix dimension could be related to that you have at some point declared a variable in your workspace ( or funciton or whatever ) with the name of eval.
try typing
which eval
it should return that eval is a built-in function, if it returns eval is a variable there is the reason for your error. If so just use
clear eval

댓글 수: 2

kjetil87
kjetil87 2013년 8월 16일
also the sprintf is not really needed. + also check out
xianghong
xianghong 2013년 8월 19일
when I tried this morning, it worked! Thank you so much! Have a great week!
Xianghong

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

추가 답변 (3개)

xianghong
xianghong 2013년 8월 16일

0 개 추천

This seems like to name the fields within a variable. If I just want to make a variable name from a string, how to do it? Thanks!

댓글 수: 1

Walter Roberson
Walter Roberson 2013년 8월 16일
No, it is not just for creating field names within a variable. It shows a number of different alternatives to creating a variable from a string, recommending strongly that you use one of the alternatives instead of creating a variable dynamically. At the end of the FAQ it shows how to create a variable dynamically, for the rare case when you really need to do that. If you are not engaged in creating extensions to MATLAB itself, chances are that there is a better route than creating a variable dynamically.

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

xianghong
xianghong 2013년 8월 16일

0 개 추천

EDU>> test='eye';
EDU>> value=[1,2,3];
EDU>> eval([sprintf(test) '=value+1'])
Index exceeds matrix dimensions.
Looks like it still gave the error. What shall I do?
Thanks,

댓글 수: 2

Please use the command
clear eval
and then try again
xianghong
xianghong 2013년 8월 19일
thank you so much! It worked this monday morning!
Have a nice day!
Xianghong

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

카테고리

도움말 센터File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

태그

질문:

2013년 8월 16일

Community Treasure Hunt

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

Start Hunting!

Translated by