How to select particular rows from a large matrix ?

410 次查看(过去 30 天)
I have been working with the satellite data. So I have exported some data into matlab which contains nearly 16,000 rows and 6 columns. The first 2 columns are latitude and longitude and next columns contain various data fields like CO2 etc. what should I do to select the data that lies between particular latitude and longitudes. like limits of latitude are 20 to 30 and limits of longitude are 40 to 50.

采纳的回答

kjetil87
kjetil87 2013-7-23
编辑:kjetil87 2013-7-23
small example: x=zeros(6,6); x(:)=1:numel(x)
x =
1 7 13 19 25 31
2 8 14 20 26 32
3 9 15 21 27 33
4 10 16 22 28 34
5 11 17 23 29 35
6 12 18 24 30 36
% now select the row(s) that have first column number between 3 and 5
x(x(:,1)>2 & x(:,1)<6 , :)
% if you want to add constraints on column 2 aswell:
x( x(:,1)>2 & x(:,1)<6 & x(:,2)>8 & x(:,2)<11 , :)

更多回答(2 个)

suresh s
suresh s 2013-7-23
yes, we can do in Matlab
Example:
>> a=magic(4)
a =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>> a(2:4,2:4)
ans =
11 10 8
7 6 12
14 15 1
ans is row from 2 to 4 and column from 2 to 4
NOTE: In matlab Matrix always start from 1

Milan Vasiç
Milan Vasiç 2020-8-11
I want to form a table like this:
I wrote the code:
u = 8;
z1 = 13;
FI_K0 = 45;
for b = 0:10:180
fprintf('%5d', b)
for j=1:u
FI_K (j) = FI_K0 + (j - 1) * (360. / u) - (b / z1)
end
end
In Command Window I get the following results:
0
FI_K = 45
FI_K = 45 90
FI_K = 45 90 135
FI_K = 45 90 135 180
FI_K = 45 90 135 180 225
FI_K = 45 90 135 180 225 270
FI_K = 45 90 135 180 225 270 315
FI_K = 45 90 135 180 225 270 315 360
10
FI_K = 44.2308 90.0000 135.0000 180.0000 225.0000 270.0000 315.0000 360.0000
FI_K = 44.2308 89.2308 135.0000 180.0000 225.0000 270.0000 315.0000 360.0000
FI_K = 44.2308 89.2308 134.2308 180.0000 225.0000 270.0000 315.0000 360.0000
FI_K = 44.2308 89.2308 134.2308 179.2308 225.0000 270.0000 315.0000 360.0000
FI_K = 44.2308 89.2308 134.2308 179.2308 224.2308 270.0000 315.0000 360.0000
FI_K = 44.2308 89.2308 134.2308 179.2308 224.2308 269.2308 315.0000 360.0000
FI_K = 44.2308 89.2308 134.2308 179.2308 224.2308 269.2308 314.2308 360.0000
FI_K = 44.2308 89.2308 134.2308 179.2308 224.2308 269.2308 314.2308 359.2308
20
FI_K = 43.4615 89.2308 134.2308 179.2308 224.2308 269.2308 314.2308 359.2308
FI_K = 43.4615 88.4615 134.2308 179.2308 224.2308 269.2308 314.2308 359.2308
FI_K = 43.4615 88.4615 133.4615 179.2308 224.2308 269.2308 314.2308 359.2308
FI_K = 43.4615 88.4615 133.4615 178.4615 224.2308 269.2308 314.2308 359.2308
FI_K = 43.4615 88.4615 133.4615 178.4615 223.4615 269.2308 314.2308 359.2308
FI_K = 43.4615 88.4615 133.4615 178.4615 223.4615 268.4615 314.2308 359.2308
FI_K = 43.4615 88.4615 133.4615 178.4615 223.4615 268.4615 313.4615 359.2308
FI_K = 43.4615 88.4615 133.4615 178.4615 223.4615 268.4615 313.4615 358.4615
I need the following result:
0
FI_K = 45 90 135 180 225 270 315 360
10
FI_K = 44.2308 89.2308 134.2308 179.2308 224.2308 269.2308 314.2308 359.2308
20
FI_K = 43.4615 88.4615 133.4615 178.4615 223.4615 268.4615 313.4615 358.4615
How do I do this?

类别

Help CenterFile Exchange 中查找有关 CubeSat and Satellites 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by