how to compare two matrix with if else statement?
3 次查看(过去 30 天)
显示 更早的评论
select_win = [4 5 8 9]
mat_t = [0 0 0 0; 1 0 1 0; 0 1 0 0]
data = [1 0 1 0];
I am trying to compare data matrix with mat_t.
if data array matches with mat_t array I want to write a condition of selecting first row from select_win array else I want to choose 2nd row from select_win array
I am trying to write an if else statement in this but its not working. I am stuck at the point in my code and would genuinely appreciate if someone helps with it.
0 个评论
回答(2 个)
Walter Roberson
2019-8-26
? Your select_win only has one row.
Question: is it the corresponding element that is to be chosen?
For row K of mat_t :
select_win( sub2ind(size(select_win), (data == mat_t(K,:)) + 1, 1:size(data,2)) )
3 个评论
Walter Roberson
2019-8-26
if data==mat_t
select_win(1)
else data~=mat_t
select_win(2)
end
means the same as
if all( reshape(data==mat_t, [], 1) )
disp(select_win(1))
else
disp(data~=mat_t)
disp(select_win(2))
end
There are elemenets of the vector data that are not equal to the corresponding entries in mat_t, so it is not true that all of the elements are equal, so the else is invoked.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!