我正在與ANX 1矩陣,A,已重複裏面值的工作行到一個新的列:移位重複以矩陣
A = [0;1;2;3;4; 0;1;2;3;4; 0;1;2;3;4; 0;1;2;3;4]
其對應於B值的NX 1個矩陣:
B = [2;4;6;8;10; 3;5;7;9;11; 4;6;8;10;12; 5;7;9;11;13]
我試圖產生一個廣義碼給每個重複放入一個單獨的列,並將其存儲到AA和BB,例如:
Aa = [0 0 0 0 Bb = [2 3 4 5
1 1 1 1 4 5 6 7
2 2 2 2 6 7 8 9
3 3 3 3 8 9 10 11
4 4 4 4] 10 11 12 13]
從本質上講,從A和B每次重複需要被複制到下一列,然後從第一列
到目前爲止,我已經成功地確定有多少重複有並複製整個刪除列轉到下一列,然後是下一個重複次數,但是我的方法不會將矩陣行轉換爲列。
clc;clf;close all
A = [0;1;2;3;4;0;1;2;3;4;0;1;2;3;4;0;1;2;3;4];
B = [2;4;6;8;10;3;5;7;9;11;4;6;8;10;12;5;7;9;11;13];
desiredCol = 1; %next column to go to
destinationCol = 0; %column to start on
n = length(A);
for i = 2:1:n-1
if A == 0;
A = [ A(:, 1:destinationCol)...
A(:, desiredCol+1:destinationCol)...
A(:, desiredCol)...
A(:, destinationCol+1:end) ];
end
end
A = [...]從Move a set of N-rows to another column in MATLAB
任何提示,將不勝感激檢索。如果您需要進一步解釋,請告訴我!
謝謝!
在回答您之前,您需要回答幾個問題:(1)將保證**重複嗎?例如,如果'A = [0 1 2 3 0 3 2 1];'? (2)如果'A'保證重複,那麼你知道**期嗎?例如,我們可以在這裏看到這個時期是5個樣本。這是事先知道的,還是你必須自己計算一下?如果你知道週期性,你的答案就是'Aa = reshape(A,T,[]); Bb =重塑(B,T,[]);'其中'T'是週期。 (3)'A'只有**獨特**元素嗎?如果'A = [1 1 1 1];'?會發生什麼?模式1,2或4之間的時間段是? – rayryeng
感謝您的回覆。 A保證重複,但期限會有所不同。儘管這可以通過「n =長度(A); T = n/An」容易地計算,其中An是重複次數。 A將只有等距的獨特元素。考慮到這一切,我會嘗試給你重塑命令,讓你知道!當你在stackoverflow上提問時,你給了我很多想法,所以謝謝! – Azaxa
:)。與回答問題相比,在StackOverflow上提出問題需要更多的藝術和實踐。我發現在提出問題時,我必須不斷回來並提供更多細節,因爲在提出問題時我沒有考慮某些情況。然而,有了答案,我很少需要編輯,因爲我清楚知道我要寫什麼。別擔心,你不是唯一一個這樣認爲的人......並且讓我知道它是如何與「重塑」的。如果確實有效,請允許我寫出正式答案。祝你好運! – rayryeng