2015-11-13 65 views
0

我有一系列由不同字母(A,B等)表示的數組。我需要提示我的用戶輸入一個字母來選擇一個數組。然後我想找到數組'A'和他們指定的數組的交集。使用MATLAB找到輸入數組的交集

我可以用if語句做到這一點,但必須有一個更簡單的方法。我試過了:

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

但它不返回響應,如果我換出'str'爲特定數組。

回答

0

您需要在input行刪除,'s':使用input(prompt),使輸入用Matlab計算。這樣input行產生實際的數組。

現在,input行只生成一個字符串,其中數組的名稱爲,如用戶所選。

所以,代碼應該是:

prompt = 'Select a Letter: '; 
secondArray = input(prompt); 
common = intersect(A, secondArray); 
+0

拆除, 'S',似乎在提示時使用戶無法輸入字母。 –

+0

糟糕,我指定了一個不存在的數組。它現在已經修復了! –

0

你應該考慮使用map

你可以設置你的陣列,字符串:

arrayMapKeys = {"A", "B"} 
arrayMapArray = {[1, 2], [3, 4]} 
map = containers.map(arrayMapKeys, arrayMapArray) 

然後,你可以這樣做:

[common]=intersect(A,map(str)); 

注:代碼是未經測試