我想知道是否有一種方法可以循環使用大量不同大小的數組,並從每個數組的開始修剪數據以實現相同數量的元素在每個陣列?如何通過消除元素在Matlab中修整一系列數組
舉例來說,如果我有:
A = [4 3 9 8 13]
B = [15 2 6 11 1 12 8 9 10 13 4]
C = [2 3 11 12 10 9 15 4 14]
,我想爲B C到失去的開頭有一些元素,使得他們最終的長度爲5個元素,就像一個,來實現:
A = [4 3 9 8 13]
B = [8 9 10 13 4]
C = [10 9 15 4 14]
我該怎麼做?
編輯/ UPDATE:
我已經接受了@excaza,誰寫的名爲 「naivetrim」 一個不錯的功能提出了答案。我保存的功能作爲.M腳本,然後用它:首先,我定義我的三個數組,併爲@excaza表明,被調用的函數:
[A, B, C] = naivetrim(A, B, C);
另一種解決方案的變化,對我的工作 - 基於@ Sardar_Usama的回答如下(循環)。我喜歡這個爲好,因爲這是一個有點更簡單(跟我的水平,我可以遵循什麼在代碼中發生的事情)
A = [4 3 9 8 13]
B = [15 2 6 11 1 12 8 9 10 13 4]
C = [2 3 11 12 10 9 15 4 14]
arrays = {A,B,C}
temp = min([numel(A),numel(B), numel(C)]); %finding the minimum number of elements
% Storing only required elements
for i = 1:size(arrays,2)
currentarray = arrays{i}
arrays(i) = {currentarray(end-temp+1:end)}
end
有多少個不同的數組? – excaza
'[]'用於MATLAB中的數組/矩陣,而不是'()' –