說,我們有以下的隨機矩陣:Matlab的添加行和列的優雅
1 2 3 4
5 6 7 8
9 8 7 6
5 4 3 2
我想將它轉變成如下:
1 0 2 0 3 0 4 0
0 0 0 0 0 0 0 0
5 0 6 0 7 0 8 0
0 0 0 0 0 0 0 0
9 0 8 0 7 0 6 0
0 0 0 0 0 0 0 0
5 0 4 0 3 0 2 0
0 0 0 0 0 0 0 0
出於某種原因,我不能用mathjax格式,所以看起來有點可怕,對此抱歉。要點是,我想在我的當前行和列之間添加行和零列,以便將其大小增加2倍。
我想出了下面的代碼,但它只適用於非常小的矩陣,如果我用它在一個大的圖像,它不能完成由於內存限制問題。
clear all
I=imread('image.png');
I=rgb2gray(I);
B=zeros(2*size(I));
[x, y]=find(-inf<I<inf);
xy=[x,y];
nxy=xy;
%coord change
nxy=2*xy-1;
B(nxy(:,1),nxy(:,2))=I(xy(:,1),xy(:,2));
我預計速度會很快,因爲它完全採用了maltlab函數的矢量化,但它失敗了。有沒有其他優雅的方式來做到這一點?
爲了您的信息,mathjax不只是因爲堆棧溢出不支持工作吧:)這是有時會錯過,但是很多會大量使用它的問題無論如何都是無關緊要的。 (你的不是。) –