在批量matlab中移动数组元素

时间:2015-06-24 21:29:35

标签: arrays matlab

我有三个经度,纬度,高度相同的数组。高度数组是纬度和经度的函数。结构简单,每个纬度值(例如85.00)具有0-360个经度的相应高度值。为简单起见,原始数据如下所示:

SemanticGraph sg = new SemanticGraph(tdl);

我希望我的纬度数组从90.00到-90.00而不是-90.00到90.00,因此高度数组将被更改。为此,很明显我必须移动高度数组的部分。我如何实现这一目标?是否可以使用数组操作?或者我需要一个循环?

这就是我希望它作为输出

的方式
longitude     latitude      height
  0.00         -90.00         5
    .            .            .
    .            .            .
360.00         -90.00         7
  0.00         -89.00         9
    .            .            .
    .            .            .
360.00         -89.00         14
    .            .            .
\\similar pattern until 90.00..
  0.00          90.00         3
    .            .            .
    .            .            .
360.00          90.00         14

注意:单个纬度(对应0到360度经度)具有10800(高度)值。总长度为58320000

我希望我足够清楚

1 个答案:

答案 0 :(得分:1)

给定一个列向量A,分为大小为blkSize的块,您可以反转块的顺序(保持块内的顺序相同),如下所示:

m = numel(A);
B = reshape(flipud(reshape(flipud(A),blkSize,[])),m,1)

示例:

A = [1 2 3  4 5 6  7 8 9  10 11 12  13 14 15  16 17 18].';
blkSize = 3;

B.' = 16 17 18  13 14 15  10 11 12  7 8 9  4 5 6  1 2 3

(为简洁起见,输入和输出转换。)

相关问题