我有一个Nx2矩阵说D(k1,k2)。我必须从每一行比较k1和k2并相应切换。还有另外一个具有M值的向量d(i)。 如果k1和k2是d(i)的任何一个值,我必须切换。如果D(k1,1)== d(i) & D(k1,2)== d(i)... 是否有任何方法来比较if循环中的所有d(i)元素没有为我的循环使用?内循环Matlab循环
0
A
回答
1
可以使用ismember function检查,如果向量d包含某些值:
D_in_d = ismember(D,d);
,然后你还得循环对特定行进行翻转操作:
for i=1:size(D,1)
if all(D_in_d(i,:))
D(i,:)=fliplr(D(i,:));
end
end
0
这使用matlab的vectorizion完成任何循环都相对容易。
%A交换逻辑矢量(1,如果您需要交换该行,否则为0)
swap_logical = (ismember(D(:,1),d) | ismember(D(:,2),d));
%矢量化交换基于所述交换boolian。
Dnew = swap_logical.*D(:,2:-1:1) + ~swap_logical.*D;
+0
由于ismember已经提供了逻辑输出,我会推荐一个简单或语句:'swap_logical = ismember(D(:,1),d)| ismember(D(:,2),d)' – 2013-02-12 16:37:32
+0
我同意这是更直接。 – 2013-02-13 17:15:08
相关问题
- 1. 内循环while循环内循环
- 2. 循环内循环?
- 3. MATLAB,循环
- 4. Matlab-While循环
- 5. 环内循环
- 6. 循环内的循环?
- 7. Matlab递归循环
- 8. 写MATLAB循环excel
- 9. matlab循环蛮力
- 10. Matlab摆脱循环
- 11. MATLAB简化循环
- 12. MATLAB,若无循环
- 13. MATLAB的循环图
- 14. for循环内的foreach循环java
- 15. linq for for循环内foreach循环
- 16. rails:循环内循环错误
- 17. 在循环内增加for循环
- 18. foreach循环在循环内添加值
- 19. PHP循环内循环x x后x
- 20. 更改循环内的循环索引
- 21. 在foreach循环内的foreach循环
- 22. PHP - 循环内循环,也许?
- 23. Ruby on Rails循环内的循环
- 24. 尽管while循环内循环问题
- 25. C#的循环内部循环#
- 26. 循环内循环 - 在autohotkey中检测循环结束
- 27. 回到内循环外循环 - Python嵌套循环
- 28. 如果内的循环语句 - Matlab的
- 29. 循环内的图例和子图matlab
- 30. 更改Matlab中循环内的值
所以,如果我理解正确:你想在D矩阵中的一行中的两个元素切换位置,当它们都出现在向量d? – 2012-03-01 10:29:36