Hi,
I have some data, putting in a matrix A:-
Col1 = [1;4;0];
Col2 = [2;5;2];
Col3 = [3;6;4];
A = [Col1,Col2,Col3]
I want to extract the rows where column 2 have the value 2 (i.e. c), and also have another output with those values being updated from 2 to 200 (i.e. d).
b=(A(:,2)==2);
c=A(b,:)
d=A;
d(b,2)=200
However, now the data I obtained is a table, instead of a matrix:-
A2 = table(Col1,Col2,Col3)
I tried to use A2 to replace A in the above codes and try to obtain c and d, but I failed.
How can I obtain c and d? Many thanks!

댓글 수: 1

If the operations on the data are more convenient as array rather than as separate variables, then create the table variable as an array instead --
A2=table(A);
If there are specific reasons for keeping separate columns because most is column/variable related but there's the occasional array operation, you can retrieve the desired columns as array--
A2=table(Col1,Col2,Col3);
a=A{:,1:3};
and a is the array equivalent to A above to operate on and then put result back into the table.

댓글을 달려면 로그인하십시오.

 채택된 답변

Peter Perkins
Peter Perkins 2018년 8월 24일

0 개 추천

b = (A2.col2 == 2); % or A2{:,2) == 2
c = A(b,:) % leave this as a table
d = A2;
d.Col2(b) = 200; % or d{b,2} = 200
There's quite a lot of documentation about table subscripting that will explain all this.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Tables에 대해 자세히 알아보기

제품

릴리스

R2016a

질문:

SC
2018년 8월 17일

답변:

2018년 8월 24일

Community Treasure Hunt

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

Start Hunting!

Translated by