作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个n×m矩阵,我想转换为mn×m矩阵,结果的每个m×m块都包含每一行的对角线。
例如,如果输入是:
[1 2; 3 4; 5 6]
[1 0; 0 2; 3 0; 0 4; 5 0; 0 6]
for
循环一步一步地组装矩阵。
最佳答案
对于执行此操作的 vector 化方法,将对角元素的线性索引创建到结果矩阵中,然后直接分配。
%# create some input data
inArray = [10 11;12 13;14 15];
%# make the index array
[nr,nc]=size(inArray);
idxArray = reshape(1:nr*nc,nc,nr)';
idxArray = bsxfun(@plus,idxArray,0:nr*nc:nr*nc^2-1);
%# create output
out = zeros(nr*nc,nc);
out(idxArray) = inArray(:);
out =
10 0
0 11
12 0
0 13
14 0
0 15
关于matlab - 如何向量化矩阵的逐行对角化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11034837/
我是一名优秀的程序员,十分优秀!