Azzera filtri
Azzera filtri

Determine value in the 3rd column of a matrix based on the first and second column values

2 visualizzazioni (ultimi 30 giorni)
I have a matrix, say like this:
M = [3 2 10; 4 3 4; 3 1 3; 2 1 12; 2 2 10; 4 1 18; 4 2 12];
Where the order is like this: [job, machine, production_time]
So based on the job and the machine the job should be on, I want to deduce the production time on it.
I can not seem to find anything that can do this for me. Any help is appreciated!

Risposta accettata

Dyuman Joshi
Dyuman Joshi il 12 Gen 2024
Modificato: Dyuman Joshi il 12 Gen 2024
Use ismember -
M = [3 2 10; 4 3 4; 3 1 3; 2 1 12; 2 2 10; 4 1 18; 4 2 12];
job = 3;
machine = 2;
idx = ismember(M(:,1:2), [job machine], 'rows')
idx = 7×1 logical array
1 0 0 0 0 0 0
out = M(idx, 3)
out = 10
If you are working with non-integral values, ismembertol should be preferred instead.
If job and machine contain multiple values, compare them individually and use those indices to get the corresponding values as per requirement.
  3 Commenti

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Startup and Shutdown in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by