problem with code
1 回表示 (過去 30 日間)
古いコメントを表示
I am trying a script that does not work. First I define a structure in matlab:
>> package=struct('item_no',123,'cost',19.99,'price',39.95,'code','g')
package =
item_no: 123
cost: 19.9900
price: 39.9500
code: 'g'
then I have made a script who will try to find out the value of a field in the structure:
inputfield=input('Which field would you like to see: ','s')
if isfield(package, inputfield)
fprintf('The value of the %s field is: %c\n',inputfield,...
eval(['package.'inputfield]))
else
fprintf('Error: %s is not valid field\n', inputfield)
end
but i get error message:
>> structurevalue ??? Error: File: structurevalue.m Line: 6 Column: 22 Unexpected MATLAB expression.
0 件のコメント
採用された回答
Mitch Martelli
2011 年 10 月 22 日
the problem is in the eval,try to put a blank after 'package.' :
eval(['package.' inputfield])
5 件のコメント
Jan
2011 年 10 月 22 日
I do not understand what "is part of the curriculum" means. Using EVAL is a bad programming practize, because it is prone to errors and results in slow code.
"package.(inputfield)" is much safer and faster than "eval(['package.' inputfield])".
その他の回答 (1 件)
Image Analyst
2011 年 10 月 22 日
This is what the line should look like:
fprintf('The value of the %s field is: %c\n',inputfield, package.(inputfield));
Look up "dynamic field names" in the help for more info.
1 件のコメント
Jan
2011 年 10 月 22 日
+1: Best answer. Perhaps ignoring your answers is a running joke. However, I'm missing the punchline.
参考
カテゴリ
Help Center および File Exchange で Call Python from MATLAB についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!