creating new variable using for loop and if-else condition
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Arturo Jr. Ongkeko
le 12 Déc 2020
Commenté : Arturo Jr. Ongkeko
le 12 Déc 2020
Hi,
I wish to divide my age data in column vector into age-groups 10-29, 20-29, 30-39, 40-49, 50-59, etc. using for loop and the if-else statements. here what I have started. but i wonder how to create that new variable age group.
for n=1:length(age)
if age(n)==10 & age(n)<=29
new_age_group1 = age() <what to place here>
elseif age(n)==30 & age(n)<=39
new_age_group2 = age() <what to place here>
end
end
0 commentaires
Réponse acceptée
madhan ravi
le 12 Déc 2020
age = 1 : 40; % you were almost close, note: it could be done without loops
[new_age_group1, new_age_group2] = deal(cell(40, 1));
for n = 1 : numel(age)
if age(n) >= 10 && age(n) <= 29;
new_age_group1{n} = age(n);
elseif age(n) >= 30 && age(n) <= 39
new_age_group2{n} = age(n);
end
end
new_age_group1 = cat(1, new_age_group1{:})
new_age_group2 = cat(1, new_age_group2{:})
0 commentaires
Plus de réponses (1)
Geoff Hayes
le 12 Déc 2020
Arturo - look closely at your conditions
if age(n)==10 & age(n)<=29
The above would mean that nth element of the age array is identical (==) to 10 and less than or equal to (<=) 29. This will only be true when age(n) is 10. Instead try
if age(n) >= 10 && age(n) <= 29
where age(n) is at least 10 and at most 29. You will need to do something similar for your other condition. As for grouping the ages, you might want to use a cell array where each element is an array of those ages that fit the condition. For example,
age_group = cell(5,1);
for n=1:length(age)
if age(n)>=10 && age(n)<=29
age_group(1) = [age_group{1} age(n)];
elseif age(n)>=30 && age(n)<=39
age_group(2) = [age_group{2} age(n)];
end
end
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!