使用MATLAB查找输入数组的交集

时间:2015-11-13 18:21:09

标签: matlab

我有一系列由不同字母(A,B等)表示的数组。我需要提示我的用户输入一个字母来选择一个数组。然后我想找到数组'A'和它们指定的数组的交集。

我可以使用if语句执行此操作,但必须有一个更简单的方法。我试过了:

prompt='Select a Letter: ';
str=input(prompt,'s');
[common]=intersect(A,str);

但如果我为特定数组换出'str',它就不会返回响应。

2 个答案:

答案 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));

注意:代码未经测试