How to compare the values of three matrices are equal?
3 views (last 30 days)
Show older comments
Hi
I need help with comparison matrices. I'm new to MatLab. Please help me.
I have three matrices R, S and T (size 95956x1) and I need to compare all elements them and see which elements are equal, then the same values we multiply by a fourth matrix.
In a Matlab file I read the coordinates and separate them into three matrices, thus obtaining matrices R, S and T saved in "data.mat". Then I read in another file "data.mat" and opened a For loop
for t=1:1:length(CoordinateIndex)
index = R == S ;
ts=ts+1;
end
Now I do not know if this is correct and how I will multiply to only those values which are equal to a fourth matrix. Please could you help me? I am very grateful
Jadiel
2 Comments
Azzi Abdelmalek
on 7 Jul 2013
Edited: Azzi Abdelmalek
on 7 Jul 2013
can you explain: then the same values we multiply by a fourth matrix. And you did not precise what are you going to multiply by the fourth matrix
Accepted Answer
per isakson
on 7 Jul 2013
I don't exactly understand what you want to do. However, here is an extra example to the documentation on locigal indexing.
Create some data. It's short column vectors to make them easy to inspect.
N = 12;
R = randi( [1,3], [N,1] );
S = randi( [1,3], [N,1] );
T = randi( [1,3], [N,1] );
f = randi( [1,3], [N,1] );
Create a logical index, which is true when R(i)==S(i), else is false
is_RS = (R==S);
Multiply T(i) by f(i) where R(i)==S(i)
T(is_RS) = f(is_RS) .* T(is_RS);
1 Comment
Image Analyst
on 7 Jul 2013
Exactly how I'd do it. Works for integers only. For floating point values, see the FAQ: http://matlab.wikia.com/wiki/FAQ#Why_is_0.3_-_0.2_-_0.1_.28or_similar.29_not_equal_to_zero.3F for solution.
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!