フィルターのクリア

using the vector as a condition in the switch statement

36 ビュー (過去 30 日間)
surendra kumar Aralapura mariyappa
surendra kumar Aralapura mariyappa 2019 年 6 月 9 日
回答済み: Walter Roberson 2019 年 6 月 9 日
Hey, I need to know how to pass row vector or column vector as a condition to a switch statement.
I have two row vectors;
function [M,A] = my_vectors
M = [ 1 3 5 9 8 11 12 13 15 17 20 25 29 31.......];
A = [ 2 4 7 6 10 14 16 19......... ];
end
I need my slover like below:
function my_switch
[M,A] = my_vectors;
for i = 1:n
switch true
case M
statement;
case A
statement
end
end
Here I know we can use multiple conditions in switch statement like below;
Switch true
case { 1, 3, 5, 9, 8}
statement;
case { 2, 4, 6, 7}
statement;
end
But I need to use a n vecotr as a condition in the switch statement since row vector function is being called in the slover(main function).
Here I don't need to enter the number each time to check the number isnumber(b,a) whether the number is there in the vector M or A to exceute the statement like below.
switch true
case ismember(b,M)
statement;
case ismember(b,A)
statement;
end
if there is any wrong in my code plz write the comment section along with the answer for my problem.
any suggestion are most welcomed and thanks in advance.
  9 件のコメント
surendra kumar Aralapura mariyappa
surendra kumar Aralapura mariyappa 2019 年 6 月 9 日
I understood now. I will take your idea oly now
for i = 1:n
switch i
case i == A(:)
statement1;
case i == M(:)
statement2
otherwise
statement3
end
end
is this correct now?
surendra kumar Aralapura mariyappa
surendra kumar Aralapura mariyappa 2019 年 6 月 9 日
編集済み: surendra kumar Aralapura mariyappa 2019 年 6 月 9 日
function my_idea
A = [ 1 2 5 7 ];
n = 8;
M = [ 3 4 6 9];
for i= 1:n
switch i
case i == A(:)
disp('suri');
case i == M(:)
disp('kumar')
otherwise
disp('error')
end
end
end
still it not working when I tested i also. Kindly help in that at least!

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

採用された回答

Walter Roberson
Walter Roberson 2019 年 6 月 9 日
function my_idea
A = [ 1 2 5 7 ];
n = 8;
M = [ 3 4 6 9];
for i= 1:n
switch i
case num2cell(A)
disp('suri');
case num2cell(M)
disp('kumar')
otherwise
disp('error')
end
end
end

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeDirection of Arrival Estimation についてさらに検索

製品


リリース

R2014a

Community Treasure Hunt

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

Start Hunting!

Translated by