Ich habe eine matrix <1x5000>
mit dem Namen values
. Was ich tue, ist nun zu prüfen, ob bestimmte Werte in dieser Matrix vorhanden, wie folgt aus:Prüfen, ob die Reihenfolge der Zahlen in der Matrix der vordefinierten Zahlenfolge entspricht
if any(values == 10) && any(values == 45) && any(values == 55) and so on
plot graph here
end
Was dies tun zu prüfen ist, ob die Zahlen 10, 45, 55 irgendwo in dieser Matrix existieren. Jetzt Ich möchte diese Aussage ändern, um stattdessen nach Zahlen zu suchen, die in einer vordefinierten Reihenfolge hintereinander kommen, mit anderen Worten, nicht nur prüfen, ob sie existieren. Beispiel:
Hilfe wäre sehr dankbar, da ich neu bei Matlab bin.
Habe bisher versucht:
values = [10, 50, 30, 60, 40];
[~, indices] = ismember([10, 50, 30, 60, 40], values);
if all(indices > 0) && issorted(indices)
% Do stuff
end
ohne Erfolg, ist die if-Anweisung nie zufrieden.
Also um es klarer zu machen, wenn ich Werte = [10, 20, 50, 25, 33] setzen; Da müssen irgendwo in der Matrix Werte aufeinander folgen, genau so wie ich es gesetzt habe. Beispiel: Matrix: 10, 55, 90, 33, 10, 20, 50, 25, 33, 100, 59 würde ergeben, da es eine Sequenz von 10, 20, 50, 25, 33
Was ist, wenn andere Zahlen in der Sequenz "10, 25, 35, 55, 60" vorhanden sind? Ein Beispiel wäre "10, 100, 25, 200, 35, 300, 55, 400, 60, 500"; würde dies als Erfüllung Ihrer Bedingung von "Zahlen, die in einer vordefinierten Reihenfolge hintereinander kommen", zählen? Ein konkretes Beispiel mit erwarteten Ergebnissen wäre nett. – edwinksl
Was ist, wenn es Wiederholungen dieser Zahlen gibt und einige Kombinationen die Reihenfolge unterbrechen, während andere genügen, '10, 100, 25, 10, 200, 35, 300, 55, 400, 60, 500': diese Reihenfolge erfüllt Ihre Bestellung, wenn Sie betrachte nur die erste "10". –
@edwinksl Das würde meine Bedingung nicht erfüllen, keine anderen Werte dürfen dazwischen liegen. – HumbleMan