我有一系列由不同字母(A,B等)表示的數組。我需要提示我的用戶輸入一個字母來選擇一個數組。然後我想找到數組'A'和他們指定的數組的交集。使用MATLAB找到輸入數組的交集
我可以用if語句做到這一點,但必須有一個更簡單的方法。我試過了:
prompt='Select a Letter: ';
str=input(prompt,'s');
[common]=intersect(A,str);
但它不返回響應,如果我換出'str'爲特定數組。
我有一系列由不同字母(A,B等)表示的數組。我需要提示我的用戶輸入一個字母來選擇一個數組。然後我想找到數組'A'和他們指定的數組的交集。使用MATLAB找到輸入數組的交集
我可以用if語句做到這一點,但必須有一個更簡單的方法。我試過了:
prompt='Select a Letter: ';
str=input(prompt,'s');
[common]=intersect(A,str);
但它不返回響應,如果我換出'str'爲特定數組。
您需要在input
行刪除,'s'
:使用input(prompt)
,使輸入用Matlab計算。這樣input
行產生實際的數組。
現在,input
行只生成一個字符串,其中數組的名稱爲,如用戶所選。
所以,代碼應該是:
prompt = 'Select a Letter: ';
secondArray = input(prompt);
common = intersect(A, secondArray);
你應該考慮使用map
。
你可以設置你的陣列,字符串:
arrayMapKeys = {"A", "B"}
arrayMapArray = {[1, 2], [3, 4]}
map = containers.map(arrayMapKeys, arrayMapArray)
然後,你可以這樣做:
[common]=intersect(A,map(str));
注:代碼是未經測試
拆除, 'S',似乎在提示時使用戶無法輸入字母。 –
糟糕,我指定了一個不存在的數組。它現在已經修復了! –