How do I index individual columns in an array?
20 views (last 30 days)
Show older comments
Hi,
I have a fairly basic question that I cant seem to solve.
I have an array "high_perspective_taking" which has values from 0-4. I would like to write a for loop that goes through all the rows of columns 1 and 4 in order to change all the 4's to 0's, 3's to 1's, 1's to 3's, and 0's to 4's.
I have the following for loop but I am struggling on how to index both column 1 and column 4.
for p = 1:length(high_perspective_taking)
if high_perspective_taking(p,[1 4])== 0;
high_perspective_taking(p,[1 4])= 4;
end
if high_perspective_taking(p,[1 4])== 1;
high_perspective_taking(p,[1 4])= 3;
end
if high_perspective_taking(p,[1 4])== 3;
high_perspective_taking(p,[1 4])= 1;
end
if high_perspective_taking(p,[1 4])== 4;
high_perspective_taking(p,[1 4])= 0;
end
end
Thank you!
0 Comments
Accepted Answer
Voss
on 22 Jul 2022
load high_perspective_taking.mat
% original:
high_perspective_taking
% 0 <-> 4, 1 <-> 3:
high_perspective_taking(:,[1 4]) = 4 - high_perspective_taking(:,[1 4])
6 Comments
Voss
on 23 Jul 2022
Well, if you're stil wanting to swap 0s with 4s and 1s with 3s, I would still use the approach in my answer, i.e.:
high_perspective_taking(:,[1 4]) = 4 - high_perspective_taking(:,[1 4])
In my comment I wanted to show a more general approach to swapping values where the relation was not necessarily as simple as x = 4-x, but you're right I neglected to show how to apply that approach only to certain columns.
Probably the easiest way would be to create a temporary variable containing just the relevant columns, then do the swapping in that variable, then assign back to the original variable. For example:
% a matrix where 0s and 4s in columns 1 and 4 will be swapped:
A = [0 0 0 0; 0 1 2 3; 1 2 3 4; 4 4 4 4]
% temporary variable containing just columns 1 and 4 of A:
A14 = A(:,[1 4]);
% swap 0s and 4s in A14:
A14_is_zero = A14 == 0;
A14_is_four = A14 == 4;
A14(A14_is_zero) = 4;
A14(A14_is_four) = 0;
% assign back to A:
A(:,[1 4]) = A14
More Answers (0)
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!