For loop with changing matrix

1 visualizzazione (ultimi 30 giorni)
Bas
Bas il 14 Ago 2015
Commentato: blaat il 18 Ago 2015
Hi,
I have a for loop (j= 1:years) in which matrix A changes per j. Matrix A is a matrix containing birthdates in column 8. Each row represents a person. Per year the total number of persons decreases, so every j+1, the rows in matrix A reduces.
I want to generate a new matrix B, representing the age of each person w.r.t. t= today. So matrix B should be of length(A), though this changes over j.
The output I want to get is a matrix B ,including all ages per j, so j columns.
Can anyone help me with this? I tried several codes, but it's not working...

Risposte (1)

blaat
blaat il 14 Ago 2015
You could use a cell array to store the ages per j. For example:
B = cell(1, years);
for j = 1:years
% A is computed here
B{j} = <operations on A(:, 8) to calculate age>;
end
Is this what you mean?
  2 Commenti
Bas
Bas il 14 Ago 2015
Thanks, this works. But now I want to check for every i= 1:length(A) of matrix B per j= 1:years if the value equals a value in matrix C. How can I compare this cell array with a normal matrix?
blaat
blaat il 18 Ago 2015
I'm assuming here that C has a single value per year j. You could then compare the value in a loop over the years:
for j = 1:years
is_equal = B{j} == C;
% Do things with is_equal here...
end
Alternatively, you could use cellfun().

Accedi per commentare.

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by