1
我有100列xlsx文件,大小爲(4097,100)。我需要讀取第一列並進行一些處理,並且這僅對第一列數據產生四個行變量(每個1,4097)。此外,我需要處理這四個行變量中的每一個,以獲得其統計參數,例如MATLAB中的min,max,mean,SD,var。如何使用嵌套for循環做到這一點? 我感謝您的幫助。我試圖樣本MATLAB代碼是我只考慮兩列A1和A2:嵌套循環用於MATLAB中的列數據處理
A = xlsread('S.xlsx');
num_rows = size(A,1);
num_cols = size(A,2);
A1 = A (:,1);
A2 = A (:,2);
B = {A1,A2};
for i = 1:2
for j = 1:4
IMF = emd(B{i},'STOP',[0.1,0.5,0.05],'MAXITERATIONS',100);
I1 = IMF (1,:);
I2 = IMF (2,:);
I3 = IMF (3,:);
I4 = IMF (4,:);
imf = {I1, I2, I3, I4};
m1(j) = mean(imf{j});
m2(j) = min(imf{j});
m3(j) = max(imf{j});
m4(j) = std(imf{j});
m5(j) = var(imf{j});
end
end
代碼我試過的另一個變化是:
A = xlsread('S.xlsx');
num_rows = size(A,1);
num_cols = size(A,2);
A1 = A (:,1);
A2 = A (:,2);
B = {A1,A2};
for i = 1:2
IMF = emd(B{i},'STOP',[0.1,0.5,0.05],'MAXITERATIONS',100);
I1 = IMF (1,:);
I2 = IMF (2,:);
I3 = IMF (3,:);
I4 = IMF (4,:);
imf = {I1, I2, I3, I4};
for j = 1:4
m1(j) = mean(imf{j});
m2(j) = min(imf{j});
m3(j) = max(imf{j});
m4(j) = std(imf{j});
m5(j) = var(imf{j});
end
end
但沒有成功。我只獲得第一列的統計值,即I1,I2,I3和I4的四個值。第二列A2未被處理。
_I需要讀取第一列並進行一些處理,並且這會導致第一列數據的唯一四個行變量(每個1,4097)只有這一行中**四行變量**的含義是什麼? –
親愛的穆罕默德,第一列的處理結果有四個單獨的變量,每個變量都有一行和4097列。抱歉混淆。正如m7913d所建議的那樣,我接近最終答案,這是一個覆蓋問題。這解決了。但是現在我需要努力使代碼更快。感謝您的幫助。 – Dattaprasad
如果它解決了您的問題或者自己寫一個答案,請將其標記爲正確答案,這對其他人可能有用。 – m7913d