Inefficient code - simple counter
Ältere Kommentare anzeigen
I have the following inefficient bit of code.
for i = 1:n %arb n
if something
A(i,1) = A(i,1) + 1;
elseif somethingelse
A(i,2) = A(i,2) + 1;
end
end
There are actually 5 if/else clauses inside a function which is called inside the loop, but I've reduced it to the above for simplicity. For large n, this is very slow. Is there a faster way to do this? It's supposed to be a simple counter that retains information about the counts.
Thanks
edit: I have filled A with zeros before the loop also.
2 Kommentare
KL
am 15 Dez. 2017
What are your conditions? Give an example.
Akzeptierte Antwort
Weitere Antworten (1)
One approach:
Consider a B vector with dummy data.
B=randi([1 10],20,1);A=zeros(numel(B),2);
ind1=find(B<5);%condition1
ind2=find(B>=5);%condition2
A(ind1,1)=1;A(ind2,2)=1;
Kategorien
Mehr zu Startup and Shutdown finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!