Calculating Change in 1 dimensional array
显示 更早的评论
Hello! I have a 1 dimensional array of latitude values (which has dimensions of 1 X 224). How would I calculate the change in latitude, aka delta latitude?
Thank you so much!
采纳的回答
更多回答(2 个)
Image Analyst
2014-8-22
1 个投票
Subtract the two latitudes you want to calculate the difference between? Or am I missing something?
2 个评论
Stephanie Goldstein
2014-8-22
Image Analyst
2014-8-22
That's what diff() does. Just make sure your angles are in decimal degrees or radians and not some kind of funky degrees/minutes/arcseconds form.
Stephanie Goldstein
2014-8-22
0 个投票
4 个评论
Star Strider
2014-8-22
编辑:Star Strider
2014-8-22
It does if it makes sense in the context of your problem. The diff function will do that for you. You have to convert your latitudes to decimal degrees first, though. If you don’t already have a function to do that, this anonymous function will do it:
dms2deg = @(d,m,s) d + m/60 + s/3600;
To convert 45°30' to decimal degrees:
dd = dms2deg(45,30,0);
Image Analyst
2014-8-22
The diff() function does it for adjacent elements in an entire array, though it will also work on an array of length 2. If you have two arbitrary angles - maybe they're two different variables or two non-adjacent elements in some array - then you'd have to subtract them manually or one at a time.
Do you have the mapping toolbox? Maybe there is some function in there that takes angles in degrees and arseconds and converts to decimal degrees or radians.
Stephanie Goldstein
2014-8-22
Star Strider
2014-8-22
编辑:Star Strider
2014-8-22
According to the online documentation, the Mapping Toolbox has the dms2degrees function that does the same thing. I suggest you use it instead of the one I provided. (I don’t have the Mapping Toolbox, so just now thought to look.)
类别
在 帮助中心 和 File Exchange 中查找有关 Lengths and Angles 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!