Please, how do I fix a for loop to store some counters obtained from a while loop.
close all;clear;clc;
NumberofSimulation = 10; % Number of simulations
StoreCounter = zeros(1,NumberofSimulation); % Stores the counters,
% StoreCounter = [11
for kk = 1: length(NumberofSimulation)
counter = 0; % Initializes the counter
ii = 1;
while ii <= 20
temp = randi([25 40]);
if temp >= 30
counter = counter + 1;
end
ii = ii + 1;
fprintf('kk = %d, ii = %d \n',kk,ii)% iterates aonly once. Thus, can it
%iterate more.
end
StoreCounter(kk) = counter; % This does not work, please. Only the counter
% obtained by first simulation is stored in the vector, StoreCounter.
end

 Réponse acceptée

madhan ravi
madhan ravi le 30 Nov 2018
Modifié(e) : madhan ravi le 30 Nov 2018
length(NumberofSimulation) is one because it's a scalar not a vector nor a matrix thats why your for loop iterates once
for kk=1:NumberofSimulation %change your line to this

2 commentaires

Auwal Abdullahi
Auwal Abdullahi le 30 Nov 2018
Thnk you so much. Now it works.
madhan ravi
madhan ravi le 30 Nov 2018
Anytime :)

Connectez-vous pour commenter.

Plus de réponses (1)

Susana Merino-Caviedes
Susana Merino-Caviedes le 30 Nov 2018

0 votes

I think the problem is that NumberofSimulation is a scalar, so its length is 1. Therefore, the for loop:
for kk = 1: length(NumberofSimulation)
will just run once. Try changing it by:
for kk = 1: NumberofSimulation
so that it runs NumberofSimulation times.
Regards

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by