該代碼從輸入圖像x中隨機選擇J = R * T個採樣。 x是M×N圖像.PH_2運算符首先從M中隨機選擇R個行,然後從N箇中隨機選擇T個列,並保持共同的N個像素的樣本並將其他零設置爲零。 這段代碼適用於小尺寸圖像,但對於大尺寸圖像(512x512),matlab給了我很低的內存錯誤(當創建Phi2 =零(J,S1 * S2)時,第四行;)你能幫我解決它嗎?並且我選擇R = T = 362;創建大尺寸矩陣時的內存不足
function [ y2,Phi2 ] = Phi2_operator(x,R,T)
J=R*T;
[S1,S2]=size(x);
z=zeros(size(x));
y2=zeros(size(x));
Phi2=zeros(J,S1*S2);
k = randperm(S1);
a=k(1:R);
b=sort(a);
l=length(b);
for i=1:l
z(b(i),:)=x(b(i),:);
end
clear i
K=randperm(S2);
A=K(1:T);
B=sort(A);
L=length(B);
for i=1:L
y2(:,B(i))=z(:,B(i));
end
X=find(y2);
for i=1:J
Phi2(i,X(i))=1;
end
end
呀。去一家商店買一臺新電腦! –
對於'512 x 512'圖像,'零(J,S1 * S2);'給你'262,144'列。根據'J'的值是什麼,這可能是大量的RAM。你確定要'S1 * S2'嗎? – excaza
你有多少內存?它不應該是內存密集 – GameOfThrows