## Convert matrix to Uitable

on 8 Jun 2013

### Image Analyst (view profile)

A matrix is here

U(35)=9;
U(44)=29;
A=[-1,1,1;0,-1,0;0,0,-1;1,0,0];
blnA = logical( A == -1 );
blnOut = find(any(A == -1,2));
max(blnOut);
negcolumn = find(A(max(blnOut),:) == -1);
onerow = find(A(:,negcolumn) == 1);
And i just wanna convert that matrix to uitable. Because i need a given row name and column name.
f = figure('Position',[10 10 600 600]);
dat = {-1,1,1;0,-1,0;0,0,-1;1,0,0};
cnames = {'18','29','51'};
rnames = {'12','26','35','44'};
t = uitable('Parent',f,'Data',dat,'ColumnName',cnames,...
'RowName',rnames,'Position',[10 10 590 590]);
max(blnOut)
ans =
3

My expected result is 35.

And will use that value 35 like that

U(ans)=?
U(35)
ans =
9

If i solve it, My whole calculation will be perfect. Please give me your hand

Image Analyst

### Image Analyst (view profile)

on 8 Jun 2013

Why give you a hand here rather than the thousand of other posts on this question that you've posted?

### Image Analyst (view profile)

on 8 Jun 2013

This will do it:

U(35)=9;
U(44)=29;
A=[-1,1,1;0,-1,0;0,0,-1;1,0,0];
blnA = sum( A == -1, 2 )
lastRow = find(blnA, 1, 'last')
f = figure('Position',[10 10 600 600]);
dat = {-1,1,1;0,-1,0;0,0,-1;1,0,0}
% Get that number from U:

Walter Roberson

### Walter Roberson (view profile)

on 8 Jun 2013

Though if you are going to do that, why not just use numeric column names and row names?

and then

Image Analyst

### Image Analyst (view profile)

on 9 Jun 2013

Yes, that's best, and what I suggested in my other answer in one of Light's duplicate questions (that I didn't delete). The whole intent of the code is just an incomprehensible mess to me - I have no idea what Light wants, and consequently can't suggest a good approach.