Asked by Light
on 8 Jun 2013

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

*No products are associated with this question.*

Answer by Image Analyst
on 8 Jun 2013

Accepted answer

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} columnHeaders = {'18','29','51'}; rowHeaders = {'12','26','35','44'}; t = uitable('Parent',f,'Data',dat,'ColumnName',columnHeaders,... 'RowName',rowHeaders,'Position',[10 10 590 590]); theAnswer = str2double(rowHeaders{lastRow}) % Get that number from U: finalAnswer = U(theAnswer)

Walter Roberson
on 8 Jun 2013

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

columnHeaders = {18,29,51}; rowHeaders = {12,26,35,44};

and then

theAnswer = rowHeaders{lastRow};

Image Analyst
on 9 Jun 2013

Opportunities for recent engineering grads.

## 1 Comment

## Image Analyst (view profile)

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/78455#comment_153825

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