Mean of a subset of columns for every row

1 回表示 (過去 30 日間)
Perla González Pereyra
Perla González Pereyra 2019 年 11 月 12 日
編集済み: dpb 2019 年 11 月 13 日
I know there are several question like this, but i want my code be more dinamic and work for every input matrix.
So the problems is this: I have a matrix 34X3000, and I want tho get the mean of 10 columns for every row. The output will be 34x300.
So far I had this, I know the error is for the index but I don't no how to do it. Can you help me?
TotalRecordingTimeSec=length(Data);
binsize=10;%Entrada
timeline=0:binsize:TotalRecordingTimeSec;
AllcelsFR=[];
AllFR=[];
for bb=1:size(Data,1)
for cc=1:size(timeline,2)-1
fh=timeline(cc);
th=timeline(cc+1);
BinData=Data(Data>fh & Data<th);
AllFR=[AllFR;nanmedian(BinData)];
end
AllcelsFR=[AllcelsFR AllFR];
end

採用された回答

dpb
dpb 2019 年 11 月 12 日
N=10;
M=reshape(mean(reshape(Data.',N,[])),size(Data,2)/N,[]).';
  2 件のコメント
Perla González Pereyra
Perla González Pereyra 2019 年 11 月 12 日
This work pretty well, thank you so much. I have to read reshape again
dpb
dpb 2019 年 11 月 12 日
編集済み: dpb 2019 年 11 月 13 日
Utilizes that memory storage order in MATLAB is row major and builtin functions such as mean are vectorized to operate by column.
Start with a very small sample dataset like 3x12 or so with N=4, say, that you can verify results by inspection. Then observe each step sequentially at the command line.
(VERY powerful technique)

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeData Type Conversion についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by