Forum: PC Hard- und Software Matlab Indizes beschreiben


von Elias (Gast)


Lesenswert?

In einem Matlab m-File wird eine For Schleife durchlaufen:

for i=1:5

   % Berechnung der Variable 'Zahl' ...
   array(i) = zahl;

end

Warum kann ich in einem m-File nicht derart auf den Index des Arrays 
zugreifen? In der Konsole funktioniert es schließlich auch.

: Verschoben durch Moderator
von Tom (Gast)


Lesenswert?

Wenn es im m-file genau so wie oben steht, geht durch die drei Punkte 
der Kommentar in der nächsten Zeile weiter! --> Also die Punkte 
wegmachen.

Es klappt im m-file alles genau so wie in der Konsole.

von Elias (Gast)


Lesenswert?

Leider klappt es im m-File nicht.
Ich erhalte den Fehler:
"Array indices must be positive integers or logical values".

Da ich auf ganzzahlige Werte zugreife, bedingt durch die For Schleife, 
weiß ich nicht, wo dr Fehler liegt.

von Tom (Gast)


Lesenswert?

Bei mir klappt folgender Code fehlerfrei:

array = zeros(5,1);

for i = 1:5
    array(i) = i;
end


Welche Version nutzt du?
Schreib ggf. den ganzen Code hier rein!

Beitrag #5798411 wurde vom Autor gelöscht.
von Elias (Gast)


Lesenswert?

Version ist Matlab 2018b:
Im m-File wird ein Simulink Modell wiederholt ausgeführt

Array = zeros(5,1)
for i=1:5
  starthoehe = i*5;
  sim('Model.slx');

  xa = ScopaData.signals(1,1)values;

  minimum = min(xa);

  Array(i) = minimum


end

von Walter T. (nicolas)


Lesenswert?

Ist "minimum" ein skalarer numerischer Wert?

von Elias (Gast)


Lesenswert?

Das "Minimum" wird aus einem Kurvenverlauf heraus gesucht, der sich 
zwischen -100 und 100 bewegen kann.
Wie kann ich die Werte denn in einem Array abspeichern, falls diese 
nachkommastellen haben?

Ziel ist es den Minimum wert über die Variation des Parameters 
Starthoehe zu erhalten.

von MJF (Gast)


Lesenswert?

Die Zeile:
xa = ScopaData.signals(1,1)values;

sieht seltsam aus. Fehlt da ein Punkt?

Gruß

Markus

von Elias (Gast)


Lesenswert?

Ja, der Punkt fehlt - nur hier im Forum.
Die Werte kann ich alle auslesen.

Das Problem ist lediglich der Index.

von Tom (Gast)


Lesenswert?

Probiere mal Array(i,1).

Ich habe ML 2015b, hab aber noch im Hinterkopf, dass bei 2018 sich die 
Indizierung von Arrays geändert hat.

In welcher Zeile kommt die Fehlermeldung und kommt sie gleich beim 
ersten i?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.