Vectors must be the same lengths ошибка матлаб

It looks like the variables xc and t have same size. So if you let x2 = fix(xc) instead of x2 = fix(x1). The plot should work. (I don’t know that was your intention or not)

clear

dt = 1/100000;

tstart = 0;

tend = 0.020;

t=[tstart : dt : tend];

xc=25*sin(2*pi*150*t)-15*cos(2*pi*800*t);

T = 0.00025;

n = [tstart/T : tend/T];

x1=25*sin(2*pi*150*n*T)-15*cos(2*pi*800*n*T);

% Quantize Signal

x2=fix(xc);

% Define filter coefficents

A = [1];

B = [1/16 1/16 1/16 1/16 1/16 1/16 1/16 1/16 1/16 1/16 1/16 1/16 1/16 1/16 1/16 1/16];

% Filter the quantize signal

Y = filter(B,A,x2);

figure(1);

subplot(211);

plot(t,abs(Y))

xlabel(‘Frequency (rad/sec)’)

ylabel(‘Magntidue’)

subplot(212)

plot(t,angle(Y))

xlabel(‘Frequency (rad/sec)’)

ylabel(‘Phase’)

I want to plot angles against time. Here the code:

clear all
close all
params.t0   = 0;     % start time of simulation
params.tend = 10;   % end time
params.m=2^8; %number of steps in each Brownian path
params.deltat=params.tend/params.m; % time increment for each Brownian path
params.R=4; % integer number to obtain EM stepsize from Brownian path stepsize 
params.dt = params.R*params.deltat; %0.01;    % time increment for both EM and ode45
params.D=0.001; % diffusion constant 
deltat= params.tend/params.m; % time increment for each Brownian path
params.D=0.1; %diffsuion 
params.R=4;
params.dt =  params.R*params.deltat; 
theta0=pi*rand(1);
phi0=2*pi*rand(1);
P_initial=[theta0;phi0];

[theta,phi]=difusion_SDE(params);
plot([0:params.dt:params.tend],[theta0,theta],'--*') 
hold on
plot([0:params.dt:params.tend],[phi0,phi],'--*') 

and the function file:

function [theta,phi]=difusion_SDE(params)

dW=sqrt(params.deltat)*randn(2,params.m);
 theta0=pi*rand(1);
 phi0=2*pi*rand(1);
P_initial=[ theta0; phi0];

L =  params.m/ params.R;
pem=zeros(2,L);
Ang_rescale=zeros(2,L);
Ptemp=P_initial;

for j=1:L
   Winc = sum(dW(:,[ params.R*(j-1)+1: params.R*j]),2);
   theta=Ptemp(1); 
   phi=Ptemp(2);  

   A=[  params.D.*cot(theta);...
       0]; 

   B=[sqrt(params.D)  0 ;...
      0 sqrt(params.D)./sin(theta) ];  

   Ptemp=Ptemp+ params.dt*A+B*Winc;
   pem(1,j)=Ptemp(1); 
   pem(2,j)=Ptemp(2);


Ang_rescale(1,j)=mod(pem(1,j),pi);  
Ang_rescale(2,j)=mod(pem(2,j),2*pi);    
theta= Ang_rescale(1,j);
phi=Ang_rescale(2,j);
end

When I run the code, I got this message error
Error using plot
Vectors must be the same lengths.
I appreciate any help to solve this error

In your code, “Acceleration” and “ds_mapping”are row vectors whether “t_sec” is a column vector.

Hence, you should first convert “t_sec” into a row vector like “Acceleration”and “ds_mapping”.

Now, as your Y-axis data i.e. “Acceleration” and “ds_mapping” have 620 elements only, hence you should consider only the first 620 elements of your X-axis data i.e. “t_sec”.

A demo code is attached here to illustrate the whole plotting procedure mentioned above:

Acceleration=rand(1,620);

ds_mapping=rand(1,620);

t_sec=rand(621,1);

t_sec=t_sec’;

plot(t_sec(1:end-1),Acceleration);

hold on;

plot(t_sec(1:end-1), ds_mapping);

hold off;

newbie99

0 / 0 / 0

Регистрация: 04.06.2015

Сообщений: 7

1

04.06.2015, 08:51. Показов 5333. Ответов 3

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

были различные ошибки, но смог их исправить, но с этой встал в ступор и не могу понять как быть

Matlab M
1
2
3
 u = 1.25:0.4:3.25;
y = ((abs(x.*x-2.5)).^(1/4))+((log10(x.*x)).^(1/3));
plot(u,y);

Error using plot
Vectors must be the same length.
если разбивать функцию на части, то ошибка не пропадает, значит надо изменить формат записи функции?



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

04.06.2015, 08:51

3

Эксперт по математике/физике

3385 / 1908 / 571

Регистрация: 09.04.2015

Сообщений: 5,350

04.06.2015, 09:09

2

Лучший ответ Сообщение было отмечено newbie99 как решение

Решение

В строке 2 переменная x, она во фрагменте не задана.
Усли х это u, то график строится даже с очень мелким шагом.
В точке х=0 функция имеет особую точку, т.к log10(0)= -бесконечности
А в диапазоне -1<x<1 y комплексное.
Но Вашей ошибки не получилось.



0



newbie99

0 / 0 / 0

Регистрация: 04.06.2015

Сообщений: 7

04.06.2015, 09:28

 [ТС]

3

спасибо, подтолкнули в нужную сторону, исправил и заработало

Добавлено через 4 минуты
с plot работает нормально но с fplot стал писать Too many input arguments.

Matlab M
1
2
3
4
5
6
7
>> f=@(x)((abs(x.*x-2.5)).^(1/4))+((log10(x.*x)).^(1/3));
fplot(f,[0,20],[],[],'-',1.84);
hold on
fplot(f,[0,20],[],[],'~',2.71);
fplot(f,[0,20],[],[],'::',3.81);
fplot(f,[0,20],[],[],':',4.56);
fplot(f,[0,20],[],[],'--',5.62);

не одно, так другое т_т



0



Эксперт по математике/физике

3385 / 1908 / 571

Регистрация: 09.04.2015

Сообщений: 5,350

04.06.2015, 11:31

4

Разберись с параметрами fplot, что там за пустые скобки?



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

04.06.2015, 11:31

4

Доброго времени суток, уважаемые обитатели форума!

Суть проблемы состоит в том, что при попытке построения графика возникает ошибка
«Error evaluating ‘StopFcn’ callback of block_diagram ‘untitled’. Error using ==> plot
Vectors must be the same lengths.»
Задание выполняется по примеру методички (система дифференциальных уравнений указана в прикреплённом изображении). Исходную схему построила в Matlab r2008a.

После построения задаются входные параметры InitFcn:

Код: Выделить всё

%parameters and initial conditions
a=4; b=2.5; c=2; d=1; x0=3; y0=1;

И, собственно, построение графика в StopFcn:

Код: Выделить всё

figure(1)
plot(x_y.time, x_y.signals.values)
grid on
xlabel('t')
ylabel('x, y')
figure(2)
plot(x.signals.values, y.signals.values)
grid on
xlabel('x')
ylabel('y')
hold on
figure(3)
plot3(t.signals.values, x.signals.values, y.signals.values)
grid on
xlabel('t')
ylabel('x')
zlabel('y')

Подскажите, пожалуйста, что здесь не так? Может, нужно задать ещё какие-то значения в самой модели?
Исходная модель и полученная прикреплены.
С Simulink работаю в первый раз.
Прошу сильно не ругаться на нуба. Заранее спасибо.

Понравилась статья? Поделить с друзьями:
  • Vbe6ext olb ошибка
  • Vector 1550 carrier коды ошибок
  • Vba ошибка 2465
  • Van 139 ошибка valorant
  • Vba счетчик ошибок