MATLAB Answers

using the vector as a condition in the switch statement

104 views (last 30 days)
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 Comments

Show 6 older comments
Adam Danz
Adam Danz on 9 Jun 2019
When you share code (which is usually helpful) please format it using the format button.
There are too many mysteries/errors in your code to understand what you're trying to do. For example, what is my_vectors? Where do M and A come from in your my_switch function? What is 'n' and where does that come from? Almost every line of code either has an error or its values come out of thin air.
Rather than explaining the code, I'd like to hear a bigger picture explanation of what you're trying to do.
surendra kumar Aralapura mariyappa
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
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!

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 9 Jun 2019
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 Comments

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!