如何比较矩阵列与每列前一列?有没有办法做到这一点,而没有几个for
循环?使用MATLAB比较列
2
A
回答
1
想比较每一项与其左侧的项目?
X=yourMatrix
emptycolumn = zeros(size(X,1),1)
comparison = [X emptycolumn]==[emptycolumn X]
很明显,第一列和最后一列都是假的,并不意味着任何废弃它们的东西。
或者,如果你想比较整列是否是一样的,并得到结果的单行,只需使用all(comparison,1)
1
是
elementsAreEqualToElementToTheLeft = array(:,2:end) == array(:,1:end-1);
columnsAreEqualToColumsToTheLeft = all(elementsAreEqualToElementsToTheLeft,1);
2
对于一个矩阵M
,下面的代码将为您提供一个逻辑行向量,其中0(false)和1(true)的逻辑行向量表示给定列和前一列之间的所有元素是否相等(忽略第一列,因为没有以前的列):
columnsAreEqual = all(diff(M,1,2) == 0);
对于包含整数值的矩阵M
,这将工作正常。但是,如果您正在处理浮点值,则使用函数来计算列元素之间的差异可能会导致非常小的非零值,这是由于浮点数的表示方式。由于即使非常小的值仍然不等于零,因此您需要为以下差异选择一些容差值,您会认为两个数字实际上相等:
tolerance = 1e-6; %# Any differences smaller than this are considered 0
columnsAreEqual = all(abs(diff(M,1,2)) < tolerance);
相关问题
- 1. 使用MATLAB比较文件
- 2. 使用MATLAB比较图像
- 3. 使用Matlab来比较不同单元格阵列中的列
- 4. 比较图像matlab
- 5. 数值比较MATLAB
- 6. 比较标签matlab
- 7. matlab中细胞阵列的比较
- 8. 使用Python比较列表?
- 9. 使用VBA宏比较列
- 10. 使用LAG并比较列
- 11. 在MATLAB中逐行比较
- 12. 使用linq查询比较列与列
- 13. c#列表比较器使用两个比较元素
- 14. 使用无法比较的文件比较列表
- 15. 使用比较
- 16. 比较使用==
- 17. 比较多列
- 18. 比较列
- 19. 阵列比较
- 20. 比较两列
- 21. 比较列值
- 22. 阵列比较
- 23. 比较阵列
- 24. 比较阵列
- 25. 比较两个列表,并使用LINQ
- 26. 使用sql比较列中的值
- 27. 使用连接如何比较2列
- 28. 使用数组来比较表列值
- 29. 使用Linq比较2个列表
- 30. JTable使用RowFilter来比较两列
M(:,1:结束-1)== M(:,2:结束)' – Amro 2010-08-19 16:38:35