# unable to perform assignment because the left and right sides have a different number of elements.

53 vues (au cours des 30 derniers jours)
jojo le 26 Nov 2019
Commenté : darova le 5 Déc 2019
I need to update t and dx as shown below, but i keep getting the error: "unable to perform assignment because the left and right sides have a different number of elements."
I do understand that t(1) is 1 by 1 , while the new result 2 by 1.
This is the euler approach to analytical solution of ode.
clc;
clear all;
close all;
h = 0.1;
t = 0:h:5;
y = zeros(size(t));
t(1) = -2; % initial conditions
dx(1) =3; %Issue here
n = numel(y);
y_dot = @(t,dx)[dx; -3*dx-7*t];
for i=1:n-1
t(i+1)=t(i)+h;
dx(i+1) = dx(i)+h*y_dot(t(i+1),dx(i)); % Issue here. I tried (1) indexing but wouldn't work.
dx(i+1) = dx(i) + h*y_dot(t(i+1),dx(i+1));
end
##### 2 commentairesAfficher AucuneMasquer Aucune
Jyotsna Talluri le 4 Déc 2019
Can you mention what you want to achieve mathematically?
darova le 5 Déc 2019
y_dot returns 2 values
y_dot = @(t,dx)[dx; -3*dx-7*t];
And you are trying to pass 2 values to dx(i+1)
dx(i+1) = dx(i)+h*y_dot(t(i+1),dx(i));

Connectez-vous pour commenter.

### Réponse acceptée

Luna le 4 Déc 2019
Modifié(e) : Luna le 4 Déc 2019
Hi,
It is because you defined dx = 3 as 1x1 double. Your function y_dot gives 2x1 double as result. So it is not possible to concatanate them because first element is 1x1 and second, third other elements are 2x1. Maybe you can try code I fixed below. Your result dx will be 2x50 matrix at the end of the loop.
If you explain what you need as a result it would be much more better.
h = 0.1;
t = 0:h:5;
y = zeros(size(t));
t(1) = -2; % initial conditions
dx(:,1) =[3;3]; %Changed this 2x1 double array with 3.
n = numel(y);
y_dot = @(t,dx)[dx; -3*dx-7*t];
for i=1:n-1
t(i+1)=t(i)+h;
dx(:,i+1) = dx(i)+h*y_dot(t(i+1),dx(i)); % Changed this with (:,i+1) means all rows of i+1.th column.
dx(:,i+1) = dx(i) + h*y_dot(t(i+1),dx(i+1));
end
##### 0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Ordinary Differential Equations 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