"error using vercat"?

12 vues (au cours des 30 derniers jours)
Susan Santiago
Susan Santiago le 10 Mai 2018
Réponse apportée : KSSV le 10 Mai 2018
I'm getting this error "Error using vertcat The following error occurred converting from double to function_handle: Too many output arguments"
here's my code
m1=55;
m2=400;
m3=100;
k1=230000;
k2=30000;
k3=50000;
k4=3000;
n2=1500;
n3=4000;
n4=700;
ti=0;
tf=20;
tm=(ti+tf)/2;
t1=tf/4;
L0=5;
v=15;
A=0.03;
M=[0 1 0 0 0 0;
-(k1+k2)/m1 -(n2+n4)/m1 k2/m1 n4/m1 0 n4/m1;
0 0 0 1 0 0;
k2/m2 n2/m2 -(k3+k2)/m2 -(n3+n2)/m2 k3/m2 n3/m2;
0 0 0 0 0 1;
k4/m3 n4/m3 k3/m3 n3/m3 -(k3+k4)/m3 -(n3+n4)/m3];
fM= @(t,y) M*y+vect;
%Scenario 1
u1 = @(t) (A/2)*[1-cos(2*pi*v*t/L0)]
vect=[0;u1;0;0;0;0];
[T, Y1] = ode45(fM,[ti,tf],vect)
I'm going to say upfront that I'm not totally sure if this code even makes sense so any help would be appreciated
  1 commentaire
Greg
Greg le 10 Mai 2018
Modifié(e) : Greg le 10 Mai 2018
As the second error states, it can't convert a double to a function handle:
u1 = @(t) (A/2)*[1-cos(2*pi*v*t/L0)]
vect=[0;u1;0;0;0;0];
u1 is a function handle, and you're trying to merge it with a matrix of zeros (class double). What are you hoping vect will be?

Connectez-vous pour commenter.

Réponse acceptée

KSSV
KSSV le 10 Mai 2018
As u1 is a function handle it needs t as input...you input t into it and then call the line you wanted.
t = 0:0.001:1 ;
vect=[0;u1(t)';0;0;0;0];

Plus de réponses (0)

Catégories

En savoir plus sur Data Type Conversion dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by