フィルターのクリア

How can i rewrite this logic for n elements?

1 回表示 (過去 30 日間)
Sumanth
Sumanth 2023 年 2 月 28 日
コメント済み: Walter Roberson 2023 年 2 月 28 日
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 件のコメント
Torsten
Torsten 2023 年 2 月 28 日
yes to what ?
Sumanth
Sumanth 2023 年 2 月 28 日
exactly one of the q values = 1.

サインインしてコメントする。

採用された回答

Walter Roberson
Walter Roberson 2023 年 2 月 28 日
編集済み: Walter Roberson 2023 年 2 月 28 日
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 件のコメント
John D'Errico
John D'Errico 2023 年 2 月 28 日
@Sumanth So then learn to use arrays in their many forms, possibly multidimensional arrays, or cell arrays.
Walter Roberson
Walter Roberson 2023 年 2 月 28 日
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

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeProgramming についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by