How can I plot this equation? keep getting ??? Error using ==> mtimes Inner matrix dimensions must agree.'
Show older comments
The code I have is:
T=[0:0.1:24];
omega=((12-T)/24)*360;
phi=[-180:1:180]
alpha = [0:1:90];
latitude=45;
delta=[-23.5:0.5:23.5];
sind(alpha)=sind(delta).*sind(latitude)+cosd(delta).*cosd(latitude).*cos(omega)
cosd(phi)=(sind(alpha).*sind(latitude)-cosd(delta))./(cosd(alpha).*cosd(latitude))
alpha represents my y-axis and is an angle between 0 and 90 degrees. phi represents my x-axis and is an angle between say -120 to +120.
Whenever I try to input that last line I get the error stating inner matrix dimensions must agree. So I tried to reshape my matrices for those variables I defined so that they work. But then I get '??? ??? Subscript indices must either be real positive integers or logicals.'
It seems very tedious to have to reshape my matrix every time I define a new set of variables in order to use them with an equation. Those variables are used for defining my axis range, is there a better way I can lay them out or an automatic command that will make sure they work every time?
I want to plot alpha and phi as a graph using something like
plot(alpha,phi)
but can't get past those errors? can't I just use a command that says something like define x-axis [0:90], define y-axis [-120:120] or something?
Thanks
Accepted Answer
More Answers (1)
Image Analyst
on 16 Oct 2013
0 votes
omega is 1 by 241 while latitude is 1 by 95 so they're not the same number of elements so you can't do an element-by-element sum or product.
2 Comments
P
on 16 Oct 2013
Image Analyst
on 16 Oct 2013
You can use linspace(startingValue, endingValue, numberOfElements) instead of startingValue : stepValue : endingValue to get exactly the number of elements you want.
Categories
Find more on Programming 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!