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
更多回答(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!