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

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

Get result from uitable's row number

Asked by Light on 8 Jun 2013

I have uitable below and i wanna get results uitable's row number not matrix's row number.

f = figure('Position',[10 10 600 600]);
dat = {-1,1,1;0,-1,0;0,0,-1;1,0,0};
cnames = {'12','23','25'};
rnames = {'11','12','23','14'};
t = uitable('Parent',f,'Data',dat,'ColumnName',cnames,... 
            'RowName',rnames,'Position',[10 10 590 590]);
blnA = logical( A == -1 );
blnOut = find(any(A == -1,2));
max(blnOut)
ans =
       3

My expected result is 23 not 3. How can i get that value?

2 Comments

Walter Roberson on 8 Jun 2013

You have not defined "A"

Light on 8 Jun 2013

A=[-1,1,1;0,-1,0;0,0,-1;1,0,0];

I confused i think my workspace kept that A matrix and result is 3.

Anyway, how can i get value 23. I will not use A matrix i will use it in uitable

dat = {-1,1,1;0,-1,0;0,0,-1;1,0,0};

What will i do?

Light

Tags

Products

No products are associated with this question.

1 Answer

Answer by Walter Roberson on 8 Jun 2013
Accepted answer

rnames are not a row number: rnames are row labels. You find the row number (a numeric value) but somehow you expect a string that is the row label to be returned by max() . max() never returns strings.

rnames{blnOut}

will give you the row label associated with the row #blnOut

4 Comments

Walter Roberson on 8 Jun 2013
rnames{max(blnOut)}
Light on 8 Jun 2013

I'm again

f = figure('Position',[10 10 600 600]);

dat = {-1,1,1;0,-1,0;0,0,-1;1,0,0};

cnames = {'1','2','5'};

rnames = {'1','2','3','4'};

t = uitable('Parent',f,'Data',dat,'ColumnName',cnames,... 'RowName',rnames,'Position',[10 10 590 590]);

      blnA = logical( A == -1 );

blnOut = find(any(A == -1,2));

rnames{max(blnOut)};

negcolumn = find(A(min(blnOut),:) == 1);

cnames{max(negcolumn)};

dU(5)=7;

dU(cnames{max(negcolumn)})

Error message occurred. I couldn't find the mistake.(cnames{max(negcolumn)})=5 So it must be dU(5)=7 but error Index exceeds matrix dimensions.

Walter Roberson

Contact us