Get result from uitable's row number

2 views (last 30 days)
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
Light
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?

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 8 Jun 2013
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
Light
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.

Sign in to comment.

More Answers (0)

Categories

Find more on Migrate GUIDE Apps in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!