A = [0,0,1,0,1,0,1,0,0,0;
0,0,0,0,1,0,1,0,0,0;
0,0,1,0,1,0,1,0,0,0];
B = [2,5;
1,6;
3,10];
期望輸出單元陣列中執行用於不同的列:條件每一行
C = [1,1,1,1; %// 2-3-4, 3-4-5, 4-5, 5
0,0,1,1,1,0; %// 1-2-3, 2-3-4, 3-4-5, 4-5-6, 5-6, 6
1,1,1,1,1,0,0,0]; %// 3-4-5, 4-5-6, 5-6-7, 7-8-9, 8-9-10, 9-10, 10
矩陣B包括哪些列應被用於執行矩陣A.例如條件下,B的第一行是2和5;所以矩陣A的第2列第5列之間的元素應該用來執行條件。 B的第二行是1和6;因此應使用第1列第6列中的元素來執行該條件。等等...
條件:如果連續3個元素的總和大於或等於1,則寫入1到矩陣C;否則寫爲0.例如,A包括0,1,0作爲三個連續元素(和爲0 + 1 + 0 = 1),所以將1寫入矩陣C.另一個例子,第二行中的前三個元素爲0 ,0,0(sum爲0),所以寫0到矩陣C.等等...
「有時它可以被認爲只有1或2個連續的元素。
例如,A的第一行的條件執行以第5列結束,所以應該只考慮第5列的值;這是1。所以1被寫入到矩陣C.
解釋C的第一行:
1,由於A(1 2,3,4-元件(總和,:) )> = 1
1中,由於> =(的A(1 3,4,5元素,:)的總和)1
因爲最大限制是500,只有2個連續元素都在這裏採取
1,因爲(A(1,:))單獨的4,5個元素的總和> = 1因爲最大限制是500,只有1連續元件在這裏是
1中,由於單獨的A(1第五元素的(總和,:))> = 1
沒有for循環中,僅與矩陣操作,我該怎麼做這個複雜的任務?或任何詭計?
「(總和爲0 + 1 + 0 = 1),所以寫1到矩陣C「,爲什麼?你說,總和應該大於1.我想你的意思是*大於或等於1 *而不是「大於1」 –
你是如何獲得矩陣「C」的?另外,你如何定義連續的元素,按行,按列?例如,在第一行第2列到第5列中,矩陣C中得到[1; 1]。如何得到接下來的兩個1? –
@ ParagS.Chandakkar是的,它應該大於等於1. – oarar