how do i get MATLAB to extract a specific value in multidimension array or matrix
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Nurul Ain Basirah Zakaria
el 20 de Abr. de 2021
Comentada: Nurul Ain Basirah Zakaria
el 23 de Abr. de 2021
Hi, i have a matric 420x32x20
then i want to extract the value form -1 to -4
thus, i tried
for i=1:32
for j=1:20
idx(:,i,j)=CHIRPS_SPI3_SM(:,i,j)<-1 & CHIRPS_SPI3_SM(:,i,j)>-4;
end
end
but i came out as 1 and 0 only. But, how can I use MATLAB to extract and save the actual value of -1 till -4?
5 comentarios
Walter Roberson
el 22 de Abr. de 2021
Not typically, no. In some cases, the values in the range you want all happen to form a nice hypercube, and in that case you could extract the hypercube. However, most of the time, there will be values that are not wanted that are mixed in with the values that are wanted, and in that case the best you could do would be to find the "bounding box" -- the smallest axis-alighted cuboid that contains all the values you want, but also contains some values that you do not want.
Respuestas (2)
Matt J
el 20 de Abr. de 2021
idx=CHIRPS_SPI3_SM<-1 & CHIRPS_SPI3_SM>-4;
extractedValues=CHIRPS_SPI3_SM(idx);
2 comentarios
Walter Roberson
el 22 de Abr. de 2021
Editada: Walter Roberson
el 22 de Abr. de 2021
If you want the bounding box, then
mask = CHIRPS_SPI3_SM<-1 & CHIRPS_SPI3_SM>-4; %m x n x p
mask1 = any(mask,1); %1 x n x p
mask13 = any(mask1,3); %1 x n x 1
cmin = find(mask13,1,'first');
cmax = find(mask13,1,'last');
mask23 = any(any(mask,2),3); %m x 1 x 1
rmin = find(mask23,1,'first');
rmax = find(mask23,1,'last');
mask12 = any(mask1,2); %1 x 1 x p
pmin = find(mask12,1,'first');
pmax = find(mask12,1,'last');
bounds = [cmin cmax rmin rmax pmin pmax];
subset = CHIRPS_SPI3_SM(cmin:cmax, rmin:rmax, pmin:pmax);
9 comentarios
Walter Roberson
el 23 de Abr. de 2021
No, I mean just plain
reshape([1 2], [], 1)
I want to know if reshape() works for you even in very simple cases.
If not, then use
restoredefaultpath
rehash toolboxcache
Ver también
Categorías
Más información sobre Data Type Conversion en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!