How do I add values to an array on a conditional basis?

Hi, I am trying to add values to a pre-allocated array based on whether the row number belongs to a set of values. In this example, I have generated an array with 7 rows and 900 columns, and only when the row number of another array matches the numbers in a specified vector, do I want the column values from that array to be added to my new array. At the moment, it keeps changing the dimension of the array so I am left with zeros in several of the unfilled positions. Any suggestions would be greatly appreciated, thanks in advance.
abnormal_cycles_5 = [95, 94, 92, 91, 79, 72, 1];
values_v_5_abnormal = zeros(length(abnormal_cycles_5), 900);
values_w_5_abnormal = zeros(length(abnormal_cycles_5), 900);
for i = 1:95
if ismember(i, abnormal_cycles_5)
values_v_5_abnormal(i, 1:900) = values_v_5(i, 1:900);
values_w_5_abnormal(i, 1:900) = values_w_5(i, 1:900);
end
end
I have attached the variable values 'values_v_5' and 'values_w_5':

 Réponse acceptée

Do you mean like this:
abnormal_cycles_5 = [95, 94, 92, 91, 79, 72, 1]; % 7 columns, 1 row
values_v_5_abnormal = zeros(length(abnormal_cycles_5), 900); % 7 rows, 900 columns.
values_w_5_abnormal = zeros(length(abnormal_cycles_5), 900); % 7 rows, 900 columns.
values_w_5_abnormal(:, abnormal_cycles_5) = repmat(abnormal_cycles_5', 1, 7);
where the 7 element vector "abnormal_cycles_5" gets loaded into columns 95, 94, 92, 91, 79, 72, and 1 of the 2-D matrix "values_w_5_abnormal"?

5 commentaires

Hi, thanks for your answer. The vector 'abnormal_cycles_5' represents the index positions of the rows of a separate array 'values_v_5' (or values_w_5) with dimensions 95x900 that I would like to add into a new array 'values_v_5_abnormal' (or values_w_5_abnormal) with dimensions 7x900. At this point, it does not matter that the index positions are no longer conserved, it's just that I only want to keep the rows and columns at these positions instead of all 95 rows. Thanks
Image Analyst
Image Analyst le 26 Déc 2020
Modifié(e) : Image Analyst le 26 Déc 2020
You keep forgetting to attach separate array 'values_v_5' (or values_w_5) with dimensions 95x900. We never knew about that until now. Please attach all variables in a .mat file.
save('answers.mat', 'values_v_5', 'values_w_5', 'abnormal_cycles_5');
and whatever else is needed.
Sorry about the confusion, I have now uploaded the variable values for values_v_5 and values_w_5
Do you mean like this:
v = load('values_v_5.mat')
values_v_5 = v.values_v_5;
w = load('values_w_5.mat')
values_w_5 = w.values_w_5;
abnormal_cycles_5 = [95, 94, 92, 91, 79, 72, 1]; % 7 columns, 1 row
values_v_5_abnormal = zeros(length(abnormal_cycles_5), 900); % 7 rows, 900 columns.
values_w_5_abnormal = zeros(length(abnormal_cycles_5), 900); % 7 rows, 900 columns.
values_v_5_abnormal = values_v_5(abnormal_cycles_5, :);
values_w_5_abnormal = values_w_5(abnormal_cycles_5, :);
Yes, thank you very much!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Operators and Elementary Operations 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