Creating an ordered list of vectors
36 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I'm looking to create a list of vectors arbitrary in length. I was looking for something along the lines of: iterations=___ % some arbitrary number
for i=1:iterations vi=[1 2 3 4]; end
Hoping this would create the vectors v1, v2, v3, v4 ... which are all the same vector [1 2 3 4].
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 31 Mai 2011
3 Kommentare
Walter Roberson
am 31 Mai 2011
Generating full variable names is nearly always trouble. Use cell arrays or use a structure with dynamic field names.
Walter Roberson
am 31 Mai 2011
T1 = cellstr(num2str((1:iterations).','v%d')).';
T2 = repmat({[1 2 3 4]},1,iterations);
T = [T1;T2];
VVars = struct(T{:});
Then use VVars.v1, VVars.v2, VVars.(sprintf('v%d',192)) and so on.
Weitere Antworten (2)
Jan
am 31 Mai 2011
Use a CELL instead:
v = cell(1, iterations);
v(:) = {1:4}
Now you can use v{1} instead of v1. It is always better (nicer, safer, faster) to use an index as index, instead of hiding the index in the name of the variable.
0 Kommentare
Paulo Silva
am 31 Mai 2011
v=perms(1:4);
Now instead of having v1,v2... you have v(1),v(2)...
1 Kommentar
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!