how to make a variable name from a string
    8 ビュー (過去 30 日間)
  
       古いコメントを表示
    
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!
0 件のコメント
採用された回答
  kjetil87
      
 2013 年 8 月 16 日
        
      編集済み: kjetil87
      
 2013 年 8 月 16 日
  
      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
その他の回答 (3 件)
  xianghong
 2013 年 8 月 16 日
        1 件のコメント
  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
 2013 年 8 月 16 日
        参考
カテゴリ
				Help Center および File Exchange で Matrix Indexing についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!