Change value in Matlab table in multiple columns
Mostrar comentarios más antiguos
I have a large table and want to change the values in specific columns (columns 16:41) to a different number. So for example if the number 3 is given in one of the 26 columns, this needs to be changed to 0, a number 2 to a 1 and a number 1 to a 2. I tried to do it with a loop but it didn't work and I can write a code for each of the 26 columns separately, but there must be an easier way. I also tried what I typed below where m is my dataset, but got an error 'incorrect use of '=' operator.'
(m{:,16:41} == 3) = 0;
Anyone who knows how to do this?
Respuestas (1)
Say you matrix is A
A=[100x100];
for ii=1:length(A(:,1))
for jj=16:41
if A(ii, jj)==3, A(ii, jj)=0; end
if A(ii, jj)==1, A(ii, jj)=2; end
if A(ii, jj)==2, A(ii, jj)=1; end
end
end
4 comentarios
This approach has a bug. Let's take a smaller A matrix and apply the three if statements to it.
ii = 1;
jj = 1;
A = 1
if A(ii, jj)==3, A(ii, jj)=0; end
if A(ii, jj)==1, A(ii, jj)=2; end
if A(ii, jj)==2, A(ii, jj)=1; end
By the description of the problem, A should be 2 after this code runs. Is it?
A
The second if statement does change the value of A from 1 to 2, but the third if statement changes it back.
Ghazwan
el 11 de Oct. de 2022
You are correct Steven. I was not paying attention.
YaaW
el 11 de Oct. de 2022
Ghazwan
el 11 de Oct. de 2022
we would not know what the issue is without looking at the data.
Categorías
Más información sobre Matrices and Arrays en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!