作者profyang (prof)
看板MATLAB
标题Re: [问题] 如何将矩阵依照这样的方式放大
时间Sun Nov 24 11:33:54 2013
※ 引述《newton2009 (Life is short & u r hot)》之铭言:
: 标题: [问题] 如何将矩阵依照这样的方式放大
: 时间: Tue Nov 12 16:22:49 2013
:
: 例如有个矩阵长这样
:
: A=[1 2; ...
: 3 4]
:
: 它的size为2x2的大小
:
: 现在想将它变成4x4的大小,像这样
:
: B=[1 1 2 2; ...
: 1 1 2 2; ...
: 3 3 4 4; ...
: 3 3 4 4]
:
: 我的做法是
:
: A=[1 2; 3 4];
: B=zeros(size(A)*2);
: for j=1:2
: for k=1:2
: B(j:2:end,k:2:end)=A;
: end
: end
:
: 想问的是,有没有更简单的方式可以达到相同的效果
:
: 感恩 0.0
:
: --
: ╭───────────────────╮
: │ 我要努力, │
: │ 跳出 我的 │ 框框
: ╰───────────────────╯
:
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 140.115.111.173
: → jatj:B = kron(A, ones(2)); 收工 11/12 16:27
: → newton2009:j大好神 竟然可以不用for回圈达到相同的效果!! 11/12 16:29
: → jatj:刚好线代有学到. 能帮到忙就好罗! 11/12 16:53
特地回文感谢一下j大
今天有朋友问我一个问题跟原文有些不同:
假设他想要由一个已知矩阵C(方阵)造出一个大矩阵A
A的对角上都是C矩阵 有没有办法不用for loop写出来?
一开始他是找到这个:
http://www.mathworks.com/help/matlab/ref/blkdiag.html
不过看来仍须用for loop
然後我就记得好像闲逛这个版的时候有看过很相似的逻辑可能可以解决
於是就一个个文往前爬终於找到这篇了!
假设我A需要N个C矩阵在它的对角上
j大提供的这个功能只需要A=kron(eye(N),C); 就可以解决这个问题了!
这个功能太神了( ′▽`)b
--
正妹也只不过是一组物质波方程的特解罢了(  ̄ c ̄)y▂ξ
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.231.71.37
1F:→ jatj:哈哈 不需要如此客气 有时候我也看这个版学到很多技巧 11/24 14:57
2F:→ jatj:教学相长大家都很开心阿~ 11/24 14:57