MATLAB: Plotting 3d patterns

geoshow sph2cart

I have an 2-D array of data of values at regular elevation and azimuth (or longitude/latitude) points. basically a bunch of r with regular theta and phi.
I would love to plot on a "globe" or an antenna pattern, geoshow requires equal number of latitude and longitude points? and running sph2cart constantly gives wrong dimensions.
latitude [181x1] double values (-90 to 90 )
longitude [360x1] double values(0-359)
pattern [360x181] double
>> geoshow(longitude,latitude,pattern)
Warning: Error creating or updating Surface
Error in value of property ZData
Array is wrong shape or size
>> [x y z]=sph2cart(longitude,latitude,pattern)
Error using .*
Matrix dimensions must agree.

Best Answer

Try
geoshow(longitude, latitude.', pattern)
and
geoshow(longitude.', latitude, pattern)
When you are creating a surface, the routines can be fussy about needing one vector to be a row vector and the other to be a column vector.
More stable would be
[long_grid, lat_grid] = ndgrid(longitude, lattitude);
geoshow(long_grid, lat_grid, pattern)