矢量必须长度相同

时间:2018-05-13 18:44:40

标签: matlab matlab-figure

此代码适用于州new_f([0 0 0 0 0 0 0],5,1000)
但如果我们尝试new_f([0 1 0 0 1 1 1 1],5,1000),它就会给予Vector相同的长度 这真是奇怪,因为我认为我正在寻找,因为我使用t(位持续时间)和tsym持续2位,Rb是比特率。
如果数据以一个我添加零并且增加n(数据长度)

结束,我会处理特殊情况
    function new_f(Data,v,Rb)
  n=length(Data);
  if(Data(n)==1)
    Data=[Data 0];
    n=n+1;
  end
  Tb=1/Rb;
  Ts=Tb/1200;
  t=0:Ts:Tb-Ts;
  pulse=[ones(1,length(t)/2) zeros(1,length(t)/2) ];
  A0=1;
  A01=2;
  A11=2;
  ph0=0;
  ph10=0;
  ph11=pi;
  f=1000;
  ph11=pi;
  tsym=0:Ts:2*Tb-Ts;

  D0=A0*sin(2*pi*f*t+ph0);
  D10=A01*sin(2*pi*f*tsym+ph10);
  D11=A11*sin(2*pi*f*tsym+ph11);
  clock=[];
  Dout=[];
  Dout2=[];

  for i=1:1:n
  clock=[clock pulse];
  end
  for i=1:1:n

if(Data(i)==0 )
    Dout=[Dout D0];

    continue;
end

    if(Data(i)==1 && Data(i+1)==0)
    Dout=[Dout D10 ];
    i=i+1
  continue;
    end

    Dout=[Dout D11];
    i=i+1;
    end



  T=0:Ts:n*Tb-Ts;
  subplot(2,1,1)
  plot(T,clock);
  grid on
  axis([0 n*Tb-Ts -0.1 1.1 ])
  subplot(2,1,2)
  plot(T,Dout);
  grid on
  axis([0 n*Tb-Ts -v-0.1*v v+0.1*v])


  end

1 个答案:

答案 0 :(得分:1)

感谢@CrisLuengo 根据CrisLuengo,我们无法控制matlab中的for循环增量,而解决方案是使用while语句

android { defaultConfig { externalNativeBuild { cmake {
    arguments '-DANDROID_STL=gnustl_static'
} } } }