Verfasst am: 25.02.2017, 15:42
Titel: Array mit Variablen an bestimmten Positionen definieren
Hallo zusammen,
ich möchte einen Array erzeugen, der je nach den definierten Zahlen diese entsprechend an die Position schreibt.
Also wenn b_1, b_2, b_5 und b_7 definiert sind, soll am Ende ein Array = [1 2 0 0 3 0 4] erzeugt werden.
Code:
b_1 =1;
b_2= 2;
b_5 = 3;
b_7 = 4;
Array=[0000000];
for i=1:7
Array(i)= eval(['b_' num2str(i)]);
end
die Lösung ist, keine dynamischen Variablennamen zu verwenden.
Erstelle einen Vektor, eine Matrix, oder ein Cell Array von den b-Werten, und du wirst dieses Problem gar nicht erst haben und dich vor allem auch nicht mit eval herumschlagen müssen.
vielen Dank für die Antwort. Die Anzahl der Variablen hängt wiederrum von einem Ursprungsparameter ab. Dieser soll vorgeben, wie fein eine Gruppierung von Messwerten in einem Diagramm sein soll. Wie genau muss ich denn Vektor definieren bzw. so das er von der Aufteilung abhängig ist? Die erste und letzte Zeile würde ja z.B. nur auf die Aufteilung gleich 10 zu treffen.
Es sollten die Werte eines Arrays (Area) auf einen bestimmten Wertebereich untersucht werden. Anschließend soll die Anzahl der gefundenen Stellen bei denen die Bedingung zutrifft in einen neuen Array geschrieben werden. Das Ganze soll für unterschiedliche Bereiche nach und nach durchgeführt und am Ende in einem Diagramm geplotet werden.
Wie fein der Bereich unterteilt werden soll, soll von einer weiteren Konstante (Aufteilung) abhängen.
Mir fehlt der letzte Schritt, bei dem die Anzahl der gefundenen Werten von den Bereichen in einem Array geschrieben werden soll.
Ich hoffe es ist jetzt klarer was ich für Probleme habe.
Bei dem Sum Befehl wird ja die Anzahl der gefundenen Stellen verfälscht.
inwiefern weichen die Ergebnisse mit sum denn von den erwarteten ab?
Wenn du mit find die Indizes suchst und sie dann mit size zählst, sollte doch an sich das gleiche herauskommen?
Selbst wenn dem nicht so ist, kannst du immer noch die for-Schleife wie von mir vorgeschlagen umsetzen, nur eben mit find und size.
Direkter dürfte es wie gesagt mit discretize gehen.
Als Problem sehe ich in erster Linie die Verwendung durchnummerierter Variablennamen und die Verwendung von eval.
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.