我是Matlab新手,我被困在有效解決以下問題。比較並找到2維數組中的字符串
我有兩個陣列(兩者2D),我想通過關口檢查陣列1山坳知道有多少元素出現在數組2的各個關口(比較山坳對col)
例如
array1
---------
'a1' 'b1' 'c1'
'd1' 'e1' 'f1'
array2
----------
'a1' 'a1' 'b1' 'b1' 'a1'
'd1' 'd1' 'c1' 'd1' 'c1'
'c1' 'c1' 'b1' 'd1' 'd1'
我試圖讓下面的輸出
2 elements from array1 col1 appear in array2 col1
2 elements from array1 col1 appear in array2 col2
0 elements from array1 col1 appear in array2 col3
1 elements from array1 col1 appear in array2 col4
2 elements from array1 col1 appear in array2 col5
0 elements from array1 col2 appear in array2 col1
0 elements from array1 col2 appear in array2 col2
1 elements from array1 col2 appear in array2 col3
1 elements from array1 col2 appear in array2 col4
0 elements from array1 col2 appear in array2 col5
1 elements from array1 col3 appear in array2 col1
1 elements from array1 col3 appear in array2 col2
1 elements from array1 col3 appear in array2 col3
0 elements from array1 col3 appear in array2 col4
1 elements from array1 col3 appear in array2 col5
and so on
現在我試着做下面的醜陋的代碼獲得部分輸出
for i=1:size(Array1,2)
for m=1:size(Array1,1)
element = Array1(i,m);
indx =find(ismember(Array2,element));
Array_match(indx) = Array_match(indx) + 1;
end
for s=2:size(Array1,1)
if length(char(Array1(s,i))) > 0
tt= tt + 1;
end
length(Array_test_words(s,i))
end
Indx2 = find((Array_match) > tt);
end
所以它的工作原理,你想如何提高代碼輸入或它不行? – 2014-09-10 12:59:38
行爲是不穩定的......當我一個接一個地嘗試它時,它的工作原理是,當我打開循環一次運行時,它給了我意想不到的值。 – Aabualia 2014-09-10 13:01:48
這些單元格是否總是有單個字符串? – Divakar 2014-09-10 13:26:37