MATLAB Answers


problem with extra entries in a matrix!

Asked by Ano
on 22 May 2017
Latest activity Edited by Stephen Cobeldick on 22 May 2017

Hello, I would like to fill a matrix but I have a problem in filling it, because I get some extra entries even though I have initialized my matrix to the required size. Please find the problematic loop bellow, and hope you can help, thank you.

 year = 1;
i = 0;
Nbrtot = 6;
MyResults  = zeros(Nbrtot, 1);
for l = 1:year
    for nbrrepetiton = 0:l
        for NoYes = [0 1]
            for semester = [1 2]
                i = i + 1;
                MyResults(i)  = i;

Note: using this code My matrix MyResults has 2 extra entries.


Show 1 older comment

it's kind of tracking the holidays of the employees during for example a year how many times they took a break 'nbrrepetiton', and that break was it for holidays or health problems 'NoYes' and at which semester of the year they took it first or second.

How you are sure that Nbrtot = 6 ?

what do you mean ?? for me Nbrtot is the total number of element that should be in the whole summation it is fixed but I have divided my problem into those loops in order to simplify it . any suggestions how to make the entries exactly as specified ?

Log in to comment.


1 Answer

Answer by Stephen Cobeldick on 22 May 2017
Edited by Stephen Cobeldick on 22 May 2017
 Accepted Answer

for l = 1:year          % one iteration
for nbrrepetiton = 0:l  % two iterations
for NoYes = [0 1]       % two iterations
for semester = [1 2]    % two iterations

Each nested loop multiplies the total iterations by its own number of iterations, so we get:

1x2x2x2 = 8

So we find that MATLAB is doing exactly what you told it to do: eight iterations in total. There is no reason to expect six iterations here.


Log in to comment.

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today