Check if cell contains only certain combination of variables

1 visualizzazione (ultimi 30 giorni)
I have a 4x1 cell filled with 4 possible string values: 'A', 'B', 'C', or 'D'
I would like to ensure that the values in there either:
any combination of: 'A' and/or 'B'
OR
any combination of 'C' and/or 'C'
But I want to raise an error if there is any mix between say A and C, or A and D, and so forth
  3 Commenti
Metin Akyol
Metin Akyol il 31 Gen 2022
So when I print out the cell, I get this output:
example_Cell = 4x1 cell
'A'
'B'
'C'
'A'
Metin Akyol
Metin Akyol il 31 Gen 2022
So the above example, would thus be an invalid one based on my criterion, so this should raise a flag.

Accedi per commentare.

Risposta accettata

Turlough Hughes
Turlough Hughes il 31 Gen 2022
Modificato: Turlough Hughes il 31 Gen 2022
You can do this with an "exclusive or" (see xor) where you check that you have exlusively either 'A' or 'B' xor 'C' or 'D', but not a mix of A and C or A and D, etc. See the following:
x = {'A','B','C','D'}.';
% conditions
condA = any(matches(x,"A"|"B"));
condB = any(matches(x,"C"|"D"));
assert(xor(condA,condB),'Error: ...')

Più risposte (1)

Benjamin Thompson
Benjamin Thompson il 31 Gen 2022
So something like this? I am sure you can add more detail to deal with all possible cases.
myCellArray{1} = 'A';
myCellArray{2} = 'B';
myCellArray{3} = 'C';
myCellArray{4} = 'D';
if (myCellArray{1} == 'A')
for (i = 2:4)
if ((myCellArray{i} == 'C') || (myCellArray{i} == 'D'))
disp('Not Good')
end
end
end

Categorie

Scopri di più su Programming in Help Center e File Exchange

Prodotti


Release

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by