矩阵分配错误

时间:2016-11-22 23:08:43

标签: matlab matrix octave

晚上好,

我想影响矩阵B的值到其他不同的矩阵C。

然后我尝试这段代码:

B=imread("deformation_somb.jpg");

xc=pixel_x1; 
yc=pixel_y1;
% where [nr,nc,channels]= size([B])
% pixel_x1=(nc/2) & pixel_y1=(nr/2);
j=nr-yc;
i=xc;
i_c=1;
j_c=1;
C_horizontale_droite=[];
C_horizontale_gauche=[];
C_verticale_haut=[];
C_verticale_bas=[];
i_nouveau_h=i;
i_nouveau_b=i;
j_nouveau_d=j;
j_nouveau_g=j;

while(i_nouveau_h!=nr-1 || i_nouveau_b!=0 || j_nouveau_g!=0 || j_nouveau_d!=nc-1)
    C_horizontale_gauche(1,j_c,:)=B(i,j_nouveau_g,:);
    C_horizontale_droite(1,j_c,:)=B(i,j_nouveau_d,:);
    C_verticale_haut(1,j_c,:)=B(i_nouveau_h,j,:);
    C_verticale_bas(1,j_c,:)=B(i_nouveau_b,j,:);
    i_nouveau_h = i_nouveau_h+1;
    i_nouveau_b = i_nouveau_b-1;
    j_nouveau_d = j_nouveau_d+1;
    j_nouveau_g = j_nouveau_g-1;
    j_c=j_c+1;
endwhile

distance_pixel_gauche_centre = find(C_horizontale_gauche=C_horizontale_droite!=0)
distance_pixel_droite_centre = find(C_horizontale_droite=C_horizontale_gauche!=0)
distance_pixel_haut_centre= find(C_verticale_haut=C_verticale_bas!=0)
distance_pixel_bas_centre= find(C_verticale_bas=C_verticale_haut!=0)

但是对于矩阵的第一个影响:

C_horizontale_gauche(1,j_c,:)=B(i,j_nouveau_g,:);

我有一条错误消息:

error : LG : Subscript indices must be either positive integers less than 2^31 or logicals.

然后我验证他们是积极的指数。我举个例子:

对于700 * 700 RGB的图像,nr = nc = 700。 然后j = 700-350 = 350,i = 350 所以,j_nouveau_g=350。 因此,第一个表达式应该发送到Octave这个:

`C_horizontale_gauche(1,1,:)=B(350,350,:)`

......嗯..为什么octave发给我一个错误?

谢谢你的答案。

最好的问候

于连

0 个答案:

没有答案