Locate and extract values from one array to another
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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.
0 Commenti
Risposta accettata
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)
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)
yextracted = data(ismembertol(data(:,2),yref,tol),2)
5 Commenti
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.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Get Started with MATLAB in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!