Matrix dimensions must agree error problem

2 views (last 30 days)
Hello everyone, I'm trying to plot this Code but it gives me an error: Matrix dimensions must agree
How can I sove the problem?
number_of_the_yearly_day = 1:1:365;
declination=23.45*sin((2*pi*(number_of_the_yearly_day-80))/(365));
latitude=31.963158;
Zenith_angle=latitude-declination;
tilt_angle=Zenith_angle;
altitude=1-Zenith_angle;
T=0:1:24;
w=15*(12-T);
X=asind(sin(declination).*sin(latitude)+cos(latitude).*cos(declination).*cos(w));
Y=acosd(sin(altitude)*sin(latitude)-sin(declination)/(cos(altitude)*cos(latitude)));
plot (x,Y)

Answers (1)

James Tursa
James Tursa on 2 Aug 2021
Use element-wise division with the dot:
Y=acosd(sin(altitude)*sin(latitude)-sin(declination)./(cos(altitude)*cos(latitude)));
  5 Comments
ibrahim alzoubi
ibrahim alzoubi on 2 Aug 2021
I'm looking to gerate 2D matrix where w represents hours (24 hour)
James Tursa
James Tursa on 2 Aug 2021
Edited: James Tursa on 2 Aug 2021
Try turning the w part into a column vector and then use implicit expansion. E.g., cos(w'). Note that this results in X being a 2D matrix and Y being a 1D vector. Does that do what you want?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!