我有一些统计值的对称矩阵,我想在Matlab中使用imagesc绘图。矩阵的大小是112 X 28,这意味着我想为每列显示4行。我怎样才能摆脱矩阵的上部或下部三角部分?因为这意味着每列对角地删除4行tril或triu函数不起作用(它们用于正方形矩阵)。 感谢摆脱对称矩阵的上部或下部三角部分
3
A
回答
3
如果您有图像处理工具箱,你可以使用imresize
来调整上三角面具,你就可以使用来选择合适的数据
msk = imresize(triu(true(min(size(a)))), size(a), 'nearest');
% Just zero-out the lower diag
zeroed = msk .* a;
% Select the elements in the upper diagonal
upperdiag = a(msk);
如果没有图像处理工具箱(和imresize
),你可以这样做
msk = reshape(repmat(permute(triu(true(min(size(a)))), [3 1 2]), size(a,1)/size(a,2), 1), size(a));
4
可以使用kron
功能
kron(triu(ones(28)),[1 ;1 ;1 ;1])
2
1
有很好的答案,但也许这一个可以替代使用triu功能:
% image
img = rand(112, 28);
% utilize a square matrix to use triu command
temp = nan(112, 112);
temp(:, 1:4:end) = img;
temp = triu(temp, -3);
% put the relevant elements back
img = temp(:, 1:4:end);
2
您可以bsxfun
创建蒙如下:
M = 112; % number of rows
N = 28; % number of columns
mask = bsxfun(@le, (1:M).', (1:N)*round(M/N)); % create mask
data = data.*mask; % multiply your data matrix by the mask
相关问题
- 1. 提取numpy矩阵的上/下三角部分?
- 2. 只使用下三角形(在python中)填充symm矩阵的上三角部分?
- 3. 复对称三对角矩阵的快速矩阵指数
- 4. 摆脱Iphone屏幕顶部和底部的下拉箭头
- 5. 摆脱尾部输出
- 6. Android:float - 摆脱尾部零点
- 7. 下三角矩阵和上三角矩阵给我的错误答案
- 8. 将1D numpy数组转换为矩阵的顶部三角形
- 9. 块三对角矩阵python
- 10. eigen:如何只计算矩阵内积的下/上部分
- 11. 摆脱活动顶部的渐变(Android)
- 12. 摆脱QLabel顶部的额外空间
- 13. Matlab:选择矩阵的一部分
- 14. 如何摆脱应用程序顶部的程序名称栏?
- 15. 茱莉亚的下三角矩阵
- 16. 如何摆脱顶部标题
- 17. 矩阵帮助:postScale如何影响矩阵的翻译部分?
- 18. 在对角线上具有零的对称矩阵的名称
- 19. 填补了部分圆角矩形GDI +
- 20. Python熊猫部分坍塌2d矩阵
- 21. 将部分矩阵加载到RAM中
- 22. Rails的部分HTML逃脱
- 23. 提取下三角矩阵,而不考虑对角元素
- 24. r逆转下三角矩阵环
- 25. 角部分
- 26. 我无法摆脱Joomla中SEF URL的“组件”部分
- 27. 如何摆脱DBGrid右侧部分的空白Delphi
- 28. 三部分认证
- 29. 对象分成三个部分
- 30. 将上三角形复制到列表中几个矩阵的下三角形
是的我有图像处理工具箱,我得到了我想要的通过 imagesc(归零) 谢谢! –