Re: [問題] 如何將矩陣依照這樣的方式放大
※ 引述《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
→
11/24 14:57, , 1F
11/24 14:57, 1F
→
11/24 14:57, , 2F
11/24 14:57, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章