Locate and extract values from one array to another

2 visualizzazioni (ultimi 30 giorni)
Hi guys, hope you doing well.
I have an array "data3" (113208576x3) with the variables "x", "y", "conc". I need to exctract from this array all the values where the "x" and "y" match an other array "SensorILM" i have (2001x4).
This is the code i tried:
load("November.mat");
load("Sensor_ILM.mat");
XILM = SensorILM.X;
YILM = SensorILM.Y;
idXmod = find(data3(:,1) == XILM)
idYmod = find(data3(:,2) == YILM)
I got the following error: "Arrays have incompatible sizes for this operation".
Do you know other way or method to do is or how to fix this error?
Thank you for your help!
Edit: I'm sorry but i didn't explain very well what i need. I want to extract the full rows of the array "data3" where the "x" and "y" match the "x" and "y" of the other array.

Risposta accettata

DGM
DGM il 26 Mag 2022
Use ismember() or (more likely) ismembertol(). Without knowing what the data and references look like, I'll have to leave that up to you, though the use of find() is likely not necessary. The output of ismember()/ismembertol() will be a logical array that can be used directly for indexing.
Simple example:
data = 10*rand(10,2)
data = 10×2
5.0026 9.1988 5.4673 9.2215 5.5367 6.0779 8.3047 0.9583 5.8055 7.4507 3.7809 1.6238 2.7563 3.3842 0.2377 7.9529 4.0360 3.0219 0.3630 6.5546
xref = [1 2 3 4];
yref = [5 6 7 8];
tol = 0.02; % read documentation, reduce as needed
xextracted = data(ismembertol(data(:,1),xref,tol),1)
xextracted = 4.0360
yextracted = data(ismembertol(data(:,2),yref,tol),2)
yextracted = 2×1
6.0779 7.9529
  5 Commenti
DGM
DGM il 2 Giu 2022
In order to know what goals aren't being met, it would help to have a brief example of some data which doesn't work as expected.
Tiago André
Tiago André il 2 Giu 2022
I already solved the problem, your suggestion is working. Thank you for your help and patience

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Get Started with MATLAB in Help Center e File Exchange

Tag

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by