MATLAB Answers

0

how to choose the value?

Asked by godwin tgn on 14 May 2013

i have some data. see below if true

       l1 = input('bus connection(choose one number from 1 to 30) = ');
                bus1 = [2 3];
                bus2 = [1 4 6 5];
                bus3 = [1 4];
                bus4 = [2 3 6 12];
                bus5 = [2 7];
                bus6 = [2 4 7 8 9 10 28];
                bus7 = [5 6];
                bus8 = [6 28];
                bus9 = [6 10 11];
                bus10 = [6 9 17 20 21 22];
                bus11 = 9;
                bus12 = [4 13 14 15 16];
                bus13 = 12;
                bus14 = [12 15];
                bus15 = [12 14 18 23];
                bus16 = [12 17];
                bus17 = [16 10];
                bus18 = [15 19];
                bus19 = [18 20];
                bus20 = [10 19];
                bus21 = [10 22];
                bus22 = [10 21 24];
                bus23 = [15 24];
                bus24 = [22 23 25];
                bus25 = [24 26 27];
                bus26 = 25;
                bus27 = [25 28 29 30];
                bus28 = [6 8 27];
                bus29 = [27 30];
                bus30 = [29 27];
end 

when i press 1 it display bus1 matrix also when i press 2 it show bus2 matrix and bus3,bus4 etc., please anyone help me

  2 Comments

Thomas
on 14 May 2013

Goodwin, your code will not work as it is. I assume you want the user to input the number and then you want the corresponding bus matrix to show up..

Where do you compare what the user has entered to what you want to look up? you could do this by a number of 'if' statements (just think about it.. ) or use switch case..

thanks bro.........

Log in to comment.

3 Answers

Answer by Thomas
on 14 May 2013
 Accepted Answer

An example of how to use switch case: adapt for your particular case

busNum=input('Enter the bus number:');
switch busNum
    case 1
        disp('2 3')
    case 2
        disp('1 4 6 5')
end

  0 Comments

Log in to comment.


Answer by Jan Simon
on 14 May 2013

Storing the values in different variables is a bad idea. Better use an array:

bus = {[2 3], ...
       [1 4 6 5], ...
       [1 4], ...
       etc. };
l1 = input('bus connection(choose one number from 1 to 30) = ');
disp(bus{l1});

  1 Comment

thanks bro...... i learned something here. thanks for all of you

Log in to comment.


Answer by Jurgen
on 14 May 2013

I suggest you concatenate the numerical input l1 with the string 'bus'. Then display the content with display(). E.g.

X = ['bus' l1];
display(X)

  5 Comments

@godwin tgn: No, it is your turn to rewrite the code.

Do not use EVAL. It results in more troubles than it solves.

Well it should work for this simple case?

It is not a matter of it working or not. Please look at this previous discussion.

Log in to comment.


Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!