i am executing the code below and getting the error"Subscript indices must either be real positive integers or logicals"Error in decalage (line 5) z(1:s-1,1:s-1)=y((p-s+2):p,(p-s+2):p);
1 次查看(过去 30 天)
显示 更早的评论
if true
function [mrx]=reconst_mat(zz1,zz2,zz3,zz4,filter)
%zz1=zz1*2;zz2=zz2*2;zz3=zz3*2;zz4=zz4*2;
[hh1,hh2,gg1,gg2] = wfilters(filter);
[d1,d]=size(hh1);
for i=1:d
h1(i)=hh1(d-i+1);
h2(i)=hh2(d-i+1);
g1(i)=gg1(d-i+1);
g2(i)=gg2(d-i+1);
end
[p1,p2]=size(zz1);
[s1,s2]=size(g1);
k=1;
for i=1:p1
z1(k,:)=zz1(i,:);z1(k+1,:)=0;
z2(k,:)=zz2(i,:);z2(k+1,:)=0;
z3(k,:)=zz3(i,:);z3(k+1,:)=0;
z4(k,:)=zz4(i,:);z4(k+1,:)=0;
k=k+2;
end
m1=mat1(p1*2,p2*2,g1);
m2=mat1(p1*2,p2*2,g2);
y1=m1*z1; y2=m2*z2; y3=m1*z3; y4=m2*z4;
yy1=y1+y2;
yy2=y3+y4;
clear y1 y2 y3 y4
k=1;
for i=1:p2
x1(:,k)=yy1(:,i);x1(:,k+1)=0;
x2(:,k)=yy2(:,i);x2(:,k+1)=0;
k=k+2;
end
%clear m1 m2
m1=mat2(p1*2,p2*2,g1);
m2=mat2(p1*2,p2*2,g2);
y1=x1*m1;
y2=x2*m2;
mrx=y1+y2;
mrx=decalage(mrx,g1);
function [z]=decalage(y,h)
[s1,s]=size(h); %s1=1, s=10
[p,p]=size(y);% p=4*4
z(1:s-1,1:s-1)=y((p-s+2):p,(p-s+2):p);%z(1 to 9,1 to 9)=y((-4:4,-4:4)
z(s:p,s:p)=y(1:(p-s+1),1:(p-s+1));
z(s:p,1:(s-1))=y(1:p-s+1,p-s+2:p);
z(1:s-1,s:p)=y(p-s+2:p,1:p-s+1);
end
%--------------------------------------------------
value of mrx is below.
mrx =
-5.1067 0.3892 -0.1582 0.6983
0.3176 0.1933 0.0948 0.2082
-0.8990 0.0894 0.9918 0.3191
0.6711 0.1703 0.2539 0.1011
K>> g1
g1 =
Columns 1 through 5
0 0 -0.0645 -0.0407 0.4181
Columns 6 through 10
0.7885 0.4181 -0.0407 -0.0645 0
1 个评论
John D'Errico
2015-3-18
编辑:John D'Errico
2015-3-18
Why cannot you learn to format your code to be readable? Select it as you paste it in, THEN CLICK ON THE "{} Code" button. Otherwise, your code becomes one strung out, unreadable mess. And given that this code is already an unreadable mess, why not help out those who might answer your question?
回答(1 个)
John D'Errico
2015-3-18
Your title tells us that the error occurs in decalage (line 5)
z(1:s-1,1:s-1)=y((p-s+2):p,(p-s+2):p);
so what are s and p?
The answer is trivial once you tell us. You should know it yourself by then too. So tell us, without our being forced to try to run this code ourselves, what are s and p? (I could not even attempt to run it anyway, since I lack the function wfilters.)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Startup and Shutdown 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!