Azzera filtri
Azzera filtri

WHEN I AM RUNNING THIS CODE I AM GETTING FOLLOWING ERROR

3 visualizzazioni (ultimi 30 giorni)
function [p,s] = perdecomp(u)
[ny,nx] = size(u);
u = double(u);
X = 1:nx;
Y = 1:ny;
v = zeros(ny,nx);
v(1,X) = u(1,X)-u(ny,X);
v(ny,X) = -v(1,X);
v(Y,1 ) = v(Y,1 )+u(Y,1)-u(Y,nx);
v(Y,nx) = v(Y,nx)-u(Y,1)+u(Y,nx);
fx = repmat(cos(2.*pi*(X -1)/nx),ny,1);
fy = repmat(cos(2.*pi*(Y'-1)/ny),1,nx);
fx(1,1)=0.; % avoid division by 0 in the line below
s = real(ifft2(fft2(v)*0.5./(2.-fx-fy)));
p = u-s;
Arrays have incompatible sizes for this operation.
Error in perdecomp (line 17)
p = u-s;

Risposta accettata

VBBV
VBBV il 20 Lug 2022
u = rand(1,5) % assume a matrix values
u = 1×5
0.1621 0.3146 0.5520 0.9985 0.1474
[p,s]= perdecomp(u) % call the function giving input matrix u
p = 1×5
0.1562 0.3116 0.5520 1.0015 0.1532
s = 1×5
0.0059 0.0029 0.0000 -0.0029 -0.0059
function [p,s] = perdecomp(u)
[ny,nx] = size(u);
u = double(u);
X = 1:nx;
Y = 1:ny;
v = zeros(ny,nx);
v(1,X) = u(1,X)-u(ny,X);
v(ny,X) = -v(1,X);
v(Y,1 ) = v(Y,1 )+u(Y,1)-u(Y,nx);
v(Y,nx) = v(Y,nx)-u(Y,1)+u(Y,nx);
fx = repmat(cos(2.*pi*(X -1)/nx),ny,1);
fy = repmat(cos(2.*pi*(Y'-1)/ny),1,nx);
fx(1,1)=0.; % avoid division by 0 in the line below
s = real(ifft2(fft2(v)*0.5./(2.-fx-fy)));
p = u-s;
end
Give input vector when calling function perdecomp
  1 Commento
sabitri
sabitri il 20 Lug 2022
Modificato: sabitri il 20 Lug 2022
Sir, i have to perform this decomsition on an jpg image. when i am writing u=imread('u.jpg') i am getting a long matrix..How can i solve this? here u is an jpg file saved in the folder. @VBBV

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Encryption / Cryptography in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by