Borrar filtros
Borrar filtros

How can i rewrite this logic for n elements?

1 visualización (últimos 30 días)
Sumanth
Sumanth el 28 de Feb. de 2023
Comentada: Walter Roberson el 28 de Feb. de 2023
if q(1,1) == 1
disp("q1 is selected")
D = D1;
P= P1;
elseif q(1,2) == 1
disp("q2 is selected")
D = D2;
P= P2;
elseif q(1,3) == 1
disp("q3 is selected")
D = D3;
P= P3;
end
Hello I have to re-write this logic for 10elements i.e what if q array consists of 1*10 slots unlike above i have just 3. also it is very unpredictable that when the value of q elements can be 1.
  4 comentarios
Torsten
Torsten el 28 de Feb. de 2023
yes to what ?
Sumanth
Sumanth el 28 de Feb. de 2023
exactly one of the q values = 1.

Iniciar sesión para comentar.

Respuesta aceptada

Walter Roberson
Walter Roberson el 28 de Feb. de 2023
Editada: Walter Roberson el 28 de Feb. de 2023
Or...
Dvals = [D1, D2, D3, D4, D5, D6, D7, D8, D9, D10];
Pvals = [P1, P2, P3, P4, P5, P6, P7, P9, P9, P10];
idx = find(q == 1, 1); %first
if ~isempty(idx)
D = Dvals(idx);
P = Pvals(idx);
else
uh oh
end
  3 comentarios
John D'Errico
John D'Errico el 28 de Feb. de 2023
@Sumanth So then learn to use arrays in their many forms, possibly multidimensional arrays, or cell arrays.
Walter Roberson
Walter Roberson el 28 de Feb. de 2023
Dvals = {D1, D2, D3, D4, D5, D6, D7, D8, D9, D10};
Pvals = {P1, P2, P3, P4, P5, P6, P7, P9, P9, P10};
idx = find(q == 1, 1); %first
if ~isempty(idx)
D = Dvals{idx};
P = Pvals{idx};
else
uh oh
end

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Programming en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by