arrenging rows and columns ?
1 次查看(过去 30 天)
显示 更早的评论
suppose i have latitude
-90
-60
-30
00
30
60
90
and longitude
-160 -120 -80 -40 00 40 80 120 160
i want output as
-90 -160
-60 -160
-30 -160
00 -160
30 -160
60 -160
90 -160
-90 -120
-60 -120
-30 -120
00 -120
30 -120
60 -120
90 -120
.
.
.
like that for all points. Any idea how could i do that ?
0 个评论
采纳的回答
Jan
2017-11-23
编辑:Jan
2017-11-23
lat = [-90 -60 -30 00 30 60 90]';
long = [ -160 -120 -80 -40 00 40 80 120 160 ];
nLat = length(lat);
nLong = length(long);
both = [repmat(lat, nLong, 1), repelem(long(:), nLat, 1)];
Alternatively for old Matlab versions, which do not have repelem:
tmp = repmat(long, nLat, 1);
both = [repmat(lat, nLong, 1), tmp(:)];
0 个评论
更多回答(2 个)
Andrei Bobrov
2017-11-23
lat = [-90 -60 -30 00 30 60 90]';
long = [ -160 -120 -80 -40 00 40 80 120 160 ];
[x,y] = ndgrid(lat,long);
out = [x(:),y(:)];
0 个评论
Birdman
2017-11-23
编辑:Birdman
2017-11-23
a=[-90 -60 -30 00 30 60 90];
b=[-160 -120 -80 -40 00 40 80 120 160];
a=a(:);b=b(:);
aa=repmat(a,length(b),1);
bb=repmat(b,length(a),1);
c=[aa bb]
3 个评论
Jan
2017-11-23
@cvklpstunc: It works, but does not give the correct result: The 2nd column contains [-160; -120; -80; ...; 120; 160; -160; -120; ...] instead of the wanted [-160; -160; -160; ...]. It works, if you omit "b=b(:)" and reshape it after the repmat:
a = a(:);
aa = repmat(a,length(b),1);
bb = repmat(b,length(a),1);
c = [aa, bb(:)]
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Time Series 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!