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

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

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?

*No products are associated with this question.*

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

Show 1 older comment

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.

Image Analyst
on 8 Jun 2013

See my answer in your duplicate question: http://www.mathworks.com/matlabcentral/answers/78442#answer_88166

## 2 Comments

## Walter Roberson (view profile)

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/78438#comment_153767

You have not defined "A"

## Light (view profile)

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/78438#comment_153768

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?