MATLAB Answers

godwin tgn

how to choose the value?

Asked by godwin tgn
on 14 May 2013
Accepted Answer by Thomas

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..

godwin tgn
on 14 May 2013

thanks bro.........

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


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

godwin tgn
on 14 May 2013

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


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

Jan Simon
on 14 May 2013

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

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

Jurgen
on 15 May 2013

Well it should work for this simple case?

José-Luis
on 15 May 2013

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


Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply today