Почему вектор не равен при дифференциации греха (пи * х) - PullRequest
0 голосов
/ 16 ноября 2018

Я не понимаю, почему я продолжаю получать

Ошибка при использовании графика Векторы должны быть одинаковой длины

Как показывают данные, s1 = 1X100 и s2 = 1X99что я не понимаю, почему он имеет эти данные.

clc;
%differentiation and integration:
%Waveform of sine(pi*x):

sym('x');
s= sin(pi*x1);
x1= linspace(0,4);

subplot(2,1,1);
plot(x1,s)
axis([0 4 -4 4]);

subplot(2,1,2);
s1= diff(s);
plot(x1,s1) % Error at this line 

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Как уже упоминалось в комментариях

Вы должны прочитать документацию diff:

If x is a vector of length m, then y=diff(x) returns a vector of length m-1. 

Одним из возможных решений вашей проблемы будет:

s1=[0 s1] 
0 голосов
/ 16 ноября 2018

Вы должны заменить значение x в sym объектах s и s1 , используя sub.После этого он будет преобразован в двойной, а затем вы можете построить их.

syms x;
s= sin(pi*x);
x= linspace(0,4);
subplot(2,1,1);
sr = subs(s,x) ;
plot(x,sr);
axis([0 4 -4 4]);
subplot(2,1,2);
s1= diff(s);
s1r = subs(s1,x) ;
plot(x,s1r)

Вам не нужно использовать syms на самом деле.

x= linspace(0,4);
s= sin(pi*x);
subplot(2,1,1);

plot(x,s);
axis([0 4 -4 4]);
subplot(2,1,2);
s1= gradient(s);

plot(x,s1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...