我正在设计一个需要从根本没有变量开始的应用程序。但是,在某些时候,用户将输入他想要计算的内容,比如橘子。然后他会输入“橘子”。在他写橘子之后,我想让Matlab创建一个变量“orangesCounter”。有谁知道我怎么能做到这一点?
或许有人知道我想要做的名字,如果它有一个特定的名字。我只是不知道如何正确地谷歌这个问题,因为我不知道是否有这种类型的变量创建的名称。
谢谢!
答案 0 :(得分:2)
你正在为自己设置一个巨大的混乱,因为你将如何处理代码中未知的名称的变量?无论如何,这是你的脚,所以这是枪:
%# ask for input
varName = input('what do you want to count? Please enclose the word in single quotes.\n')
%# make the corresponding counter variable, initialize it to 0
eval(sprintf('%sCounter=0;'varName'));
这是一种更好的方法:
variables = struct('name','','value','');
%# ask for the first variable
variables(1).name = input('what do you want to count? Please enclose the word in single quotes.\n');
%# ask for how many things there are
variables(1).value = input(sprintf('how many %s are there?\n',variables(1).name));
%# and return feedback
fprintf('There are %i %s.\n',variables(1).value,variables(1).name);
注意索引 - 结构中可以有多个名称/值对。