How to create answers to a calculation in an array in a forloop ?
조회 수: 1 (최근 30일)
이전 댓글 표시
Hello! I'm still fairly new to matlab and have a question to ask.
I have a dataset (labeled "data) and are using two columns of the dataset to do calcuations. The following forloop gets me the answers I am looking for:
a = Data(:,1);
b = Data(:,2);
for l = 1 : length(edges)-1
indexes = a > edges(l) & a <= edges(l+1);
BinSums(l) = sum(b(indexes));
end
Which is a 1 x 16 double with a value in each column!
Now what I want to do, is to do this same calculation 1000 times, so in the end I have an array of 1000 x 16 with each row being a new set of values.
Note: This is only part of a longer and more complicated code that inputs new data for a and b every iteration. i just want to know how I save each iteration into a new array that is 1000 x 16 if that makes sense.
I can provide more detail if needed, thank you so much for the help!!!
댓글 수: 0
채택된 답변
Voss
2022년 6월 29일
Nbins = numel(edges)-1;
BinSums = zeros(1000,Nbins);
for jj = 1:1000
% ...
% different a and b each time
a = Data(:,1);
b = Data(:,2);
% ...
for ii = 1 : Nbins
indexes = a > edges(ii) & a <= edges(ii+1);
BinSums(jj,ii) = sum(b(indexes));
end
end
댓글 수: 7
추가 답변 (1개)
Steven Lord
2022년 6월 29일
Use discretize to generate the index vector then pass those index / group indices into groupsummary as the grouping variable and your data as the data variable on which to operate.
참고 항목
카테고리
Help Center 및 File Exchange에서 Scan Parameter Ranges에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!