我有一系列由不同字母(A,B等)表示的数组。我需要提示我的用户输入一个字母来选择一个数组。然后我想找到数组'A'和它们指定的数组的交集。
我可以使用if语句执行此操作,但必须有一个更简单的方法。我试过了:
prompt='Select a Letter: ';
str=input(prompt,'s');
[common]=intersect(A,str);
但如果我为特定数组换出'str',它就不会返回响应。
答案 0 :(得分:0)
您需要删除,'s'
行中的input
:使用input(prompt)
,以便输入由Matlab进行评估。这样input
行就会生成实际的数组。
现在,input
行只生成一个字符串,其中包含用户选择的数组 name 。
所以,代码应该是:
prompt = 'Select a Letter: ';
secondArray = input(prompt);
common = intersect(A, secondArray);
答案 1 :(得分:0)
您应该考虑使用map
。
您可以使用字符串设置数组:
arrayMapKeys = {"A", "B"}
arrayMapArray = {[1, 2], [3, 4]}
map = containers.map(arrayMapKeys, arrayMapArray)
然后你可以这样做:
[common]=intersect(A,map(str));
注意:代码未经测试