Matrix dimensions must agree error problem
Show older comments
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
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
on 2 Aug 2021
ibrahim alzoubi
on 2 Aug 2021
James Tursa
on 2 Aug 2021
I just noticed the w. This is a different size than declination. What were you expecting the outcome of cos(declination).*cos(w) to be given the different sizes involved? Are you looking to generate a 2D matrix of results, or ...?
ibrahim alzoubi
on 2 Aug 2021
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?
Categories
Find more on Line Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!