如何在matlab中创建所需格式的矩阵

时间:2014-04-05 14:56:15

标签: matlab matrix

我想在matlab中创建所需格式的矩阵。矩阵的格式如下。

1 -i 1 -i 1 -i

-1 i -1 i -1 i

1 -i 1 -i 1 -i

-1 i -1 i -1 i

矩阵的大小为256x256

我创建了一个程序,但它给了我一个错误。任何人都可以帮助我。

  

eff = [256 256];

     

表示p = 0:255       对于q = 0:255           如果mod(p,2)=='0'               如果mod(q,2)=='0'                   EFF(P,Q)= 1;               其他                   EFF(P,Q)=(0-I);               端

    else
        if mod(p,2)=='0'

        eff(p,q)=-1;
        else
            eff(p,q)=0+i
        end
    end
end end
     

图(3)imagesc(eff); colormap grey;轴关;轴方形; PW0 = [256   256]; PW1 = [256 256]; PW2 = [256 256]; PW3 = [256 256];

    for p=0:255
for q=0:255
    if eff(p,q)=='1'
            PW0(p,q)=1
            PW1(p,q)=0
            PW2(p,q)=0
            PW0(p,q)=0
    else if eff(p,q)=='-i'
            PW0(p,q)=0
            PW1(p,q)=-i
            PW2(p,q)=0
            PW0(p,q)=0


    else
        if eff(p,q)=='1'
            PW0(p,q)=0
            PW1(p,q)=0
            PW2(p,q)=-1
            PW0(p,q)=0

        else
            PW0(p,q)=0
            PW1(p,q)=0
            PW2(p,q)=0
            PW0(p,q)=-i
        end

        end
    end
end
    end

错误如下 ???试图访问eff(0,0); index必须是正整数或逻辑。

==>中的错误无标题为18                 EFF(P,Q)= 0 + I

???试图访问eff(0,0); index必须是正整数或逻辑。

==>中的错误无标题为18                 EFF(P,Q)= 0 + I

任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

您可以使用repmat指令多次重复矩阵(http://www.mathworks.es/es/help/matlab/ref/repmat.html

a = [1 -i; -1 i];
b = repmat(a,128,128);

下次再记得Matlab没有从0索引,它从1开始。这就是为什么你得到错误的原因"索引必须是正的"