matlab - 创建水平拉伸(stretch)的上三角矩阵

标签 matlab matrix vectorization memory-efficient

我想创建一个与上三角矩阵非常相似的 4x12 矩阵,它看起来像这样:

1 1 1 1 1 1 1 1 1 1 1 1  
0 0 0 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 1 1 1

所以我的问题是。创建它的最有效方法是什么?没有循环,没有细胞乐趣。谢谢。

最佳答案

一种向量化方法-

nrows = 4;
ncols = 12;

row_idx = repmat(1:nrows,ncols/nrows,1)
out = bsxfun(@le,[1:nrows]',row_idx(:).')

关于matlab - 创建水平拉伸(stretch)的上三角矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29929252/

相关文章:

c - MEX (C -> Matlab) 在 mac/linux 和 windows 上转换为 int -> double 不同

CSS矩阵动画问题

r - 根据另一个矩阵改进矩阵操作的 for 循环的方法

matlab - MATLAB 版本 7 中的 pdist2 等效项

matlab - 如何在不使用 for 循环的情况下对不同大小的矩阵的各个部分求和?

Matlab打印垫

matlab:具有大量数据点的散点图

MATLAB : decision tree shows invalid output values

r - 使用 R 将矩阵划分为 N 个大小相等的 block

c - 使用 GCC 强制自动矢量化