loop of Column Average
1 回表示 (過去 30 日間)
古いコメントを表示
I have a matrix of 1024 * 78.(datatype: double )
I want to average every two columns such that the resultant matrix must be 1024*39. (average of every two matrix)
how to get it done?
again for time being if i dont know the number of columns (due to huge dataset) and want to run a loop for averaging the columns for the similar case as mentioned about, what will be the changes in the code ?
0 件のコメント
採用された回答
Davide Masiello
2022 年 4 月 19 日
編集済み: Davide Masiello
2022 年 4 月 19 日
There's no need to use a for loop.
Try the code below.
clear,clc
A = rand(1024,78); % initial matrix of doubles
B = (A(:,1:2:end-1)+A(:,2:2:end))/2; % matrix of averages for each two columns
size(B)
その他の回答 (1 件)
Eric Delgado
2022 年 4 月 19 日
function outMatrix = Fcn_twoColumnsMean(inMatrix)
arguments
inMatrix (1024,:) {mustBeNumeric} = randn(1024, 78)
end
NN = floor(width(inMatrix)/2);
outMatrix = zeros(1024, NN);
for ii = 1:NN
outMatrix(:,ii) = mean(inMatrix(:,2*ii-1:2*ii), 2);
end
end
5 件のコメント
Eric Delgado
2022 年 4 月 19 日
For sure! Especially if the script is becoming too big. So... you have to create modules for debugging purposes. But at the end of the day, it's your call! :)
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!