矩陣A
闖民宅座標邏輯與操作包含在不同的座標1的:如何執行由矩陣
A =
1 0 0 0 1 0 0 0 0 0
0 1 0 0 0 1 0 0 1 0
0 0 1 0 0 0 1 0 0 1
0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0
第1步: 尋找1的座標。例如,第一行是(1,1)和(1,5)。
c1 = find(A==1)
步驟2: 掃描這個座標主M
矩陣並進行AND運算。如果答案是1,則將1放置在相應的座標A
矩陣中。例如,(1,1) (1,5)
中的M
矩陣與(2,1)(2,5)==> 1 1 ANDed 0 0 ==>0 0
進行了與運算。同樣(3,1) (3,5)
高達(10,1) (10,5)
在M
矩陣。如果有任何地方出現了1則在A
矩陣的相應座標處放置1。
M =
1 0 0 0 1 1 1 1 1 1
0 1 0 0 0 1 1 1 1 1
0 0 1 0 1 1 1 1 1 1
0 0 0 1 0 0 0 0 1 1
1 0 1 0 1 0 0 0 0 0
1 1 1 0 0 1 0 0 1 1
1 1 1 0 0 0 1 0 1 1
1 1 1 0 0 0 0 1 0 0
1 1 1 1 0 1 1 0 1 0
1 1 1 1 0 1 1 0 0 1
在這裏,在在第四行A
矩陣給定的矩陣中(4,4)具有1檢查剩餘座標M
矩陣。它與(1,4)(2,4)進行AND運算,而(9,4)則爲1.將該1置於A
矩陣(4,9)中。我已經嘗試了代碼,但它不適用於一般情況。
a = 1:size(M)
R1 = 1;
for j = 1:size(A)
A1 = A(j,:)
c = find(A1==1) % finding 1's place
l = length(c)
a1 = a(a~=j)
for k = a1(1):a1(end)
R1 = 1;
for i = 1:l1
temp1 = R1
R1 = and(M(j,c(i)),M(k,c(i))) % performing AND operations
R2 = and(R1,temp1)
end
if (R2==1) % if the condition is satisfied by 1
A(j,k)=1 % place the 1 in the particular coordinate in A matrix
end
end
end
New_A = A
New_A =
1 0 0 0 1 0 0 0 0 0
0 1 0 0 0 1 0 0 1 0
0 0 1 0 0 0 1 0 0 1
0 0 0 1 0 0 0 0 1 0
1 0 0 0 0 0 0 1 0 0
我完全不清楚你想做什麼。你如何選擇矩陣之間的比較?當其中一個矩陣大於另一個時會發生什麼? – EBH
實際上從A矩陣中拾取1的位置座標。掃描M矩陣中的特定座標,然後執行AND操作。例如,在A矩陣中的第1行,1的位置是1和5.現在僅在M矩陣1和第5列中執行AND.ie(1,1)(1,5)AND(2,1)(2 ,5)如果ans爲1 1表示將第1行第1行放入A矩陣的第(1,2)(1,5)處。然後用(1,1)(1,5)AND(3, 1)(3,5)如果ans是0則不變。 – SIVAKUMAR
這個矩陣的大小並不重要,因爲這個操作在上面給出的矩陣中將達到(size(A))倍,只有它的5倍.M矩陣用於檢查我們選擇1的位置的特定列矩陣。如果滿意的地方放置了滿足M的特定行。 – SIVAKUMAR