MATLAB Answers

Indices on the left side are not compatible with the size of the right side

7 views (last 30 days)
Elizabeth Ng
Elizabeth Ng on 7 Dec 2019
I'm trying to get something to plot, but get the error message "unable to perform assignment because the indices on the left side are not compatible with the size of the right side" at the Va(n) part (4th line up from end of the loop). I'm thinking that this is because n are integers and t isn't? Or is it something else that's gone wrong?
%begin with specifying constants
AB=0.6;
BC=0.1;
BG=0.08;
AG=AB-BG;
omega=120*pi; %for now since there is no angular accel, omega is constant
%two revolutions at 120pi rpm takes 1/30 seconds
for n=1:10000
t=linspace(0,1/30, 10000)
theta=omega.*t; %assuming theta starts at 0
%since Vb=Vc+Vbc,
Vbx=omega.*BC.*sin(theta);
Vby=omega.*BC.*cos(theta);
%using trig:
Vb=omega*BC;
%let zetaAB=zeta*k (the unit vector) where zeta is some unknown
%using sine rule with AB and BC:
zeta=omega*(cos(theta)/sqrt(36-sin(theta).^2));
%let tau=angle CAB
tau=acos(sqrt(36-sin(theta).^2)/6);
%since Va=Vb+Vab
%Vax=omega*BC*sin(theta)+zeta*AB*sin(tau)
%Vay=omega*BC*cos(theta)-zeta*AB*cos(tau)
%Vay=0 because there is no vertical movement at A, only horizontal so
%Vax=Va
%rearranging for zeta then subbing into Vax (along with AB) gives:
Va(n)=0.1.*omega.*sin(theta).*(1+(cos(theta))./sqrt(36-sin(theta).^2));
%Vg can be found in a similar fashion to be:
Vg(n)=sqrt((Va-zeta.*AG.*sin(tau))+zeta.*AG.*cos(tau));
end
%plot the graph
plot(t,Va,t,Vg)
xlabel("time elapsed (s)")
ylabel("magnitude (m/s)")
axis tight
grid on
title('Task 1, Part a')

  0 Comments

Sign in to comment.

Answers (1)

JESUS DAVID ARIZA ROYETH
JESUS DAVID ARIZA ROYETH on 7 Dec 2019
the problem is because you do not need to use the loop for:
%begin with specifying constants
AB=0.6;
BC=0.1;
BG=0.08;
AG=AB-BG;
omega=120*pi; %for now since there is no angular accel, omega is constant
%two revolutions at 120pi rpm takes 1/30 seconds
t=linspace(0,1/30, 10000)
theta=omega.*t; %assuming theta starts at 0
%since Vb=Vc+Vbc,
Vbx=omega.*BC.*sin(theta);
Vby=omega.*BC.*cos(theta);
%using trig:
Vb=omega*BC;
%let zetaAB=zeta*k (the unit vector) where zeta is some unknown
%using sine rule with AB and BC:
zeta=omega*(cos(theta)/sqrt(36-sin(theta).^2));
%let tau=angle CAB
tau=acos(sqrt(36-sin(theta).^2)/6);
%since Va=Vb+Vab
%Vax=omega*BC*sin(theta)+zeta*AB*sin(tau)
%Vay=omega*BC*cos(theta)-zeta*AB*cos(tau)
%Vay=0 because there is no vertical movement at A, only horizontal so
%Vax=Va
%rearranging for zeta then subbing into Vax (along with AB) gives:
Va=0.1.*omega.*sin(theta).*(1+(cos(theta))./sqrt(36-sin(theta).^2));
%Vg can be found in a similar fashion to be:
Vg=sqrt((Va-zeta.*AG.*sin(tau))+zeta.*AG.*cos(tau));
figure
plot(t,Va,t,Vg)
xlabel("time elapsed (s)")
ylabel("magnitude (m/s)")
axis tight
grid on
title('Task 1, Part a')

  0 Comments

Sign in to comment.

Sign in to answer this question.

Products


Release

R2019a