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

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?

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?

Products

No products are associated with this question.

Answer by 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

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.