- Why do you need that?
- See TUTORIAL: Why Variables Should Not Be Named Dynamically (eval)
How to name every row of 100*2500 matrix?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Md Monirul Islam
am 1 Nov. 2017
Kommentiert: Steven Lord
am 27 Nov. 2020
currently i am working with a matrix. The dimension of the matrix is 100*2500. I need to assign each row the matrix to a new variable. How i can do this?
6 Kommentare
Les Beckham
am 1 Nov. 2017
But Matlab is designed to allow you to operate on matrices and (more specifically, in this case) subsets of matrices using indexing. That is what per has suggested and, I think, you should try. You don't need to give a separate name like row1 to data(1,:), etc. -- just apply your operation to data(1,:), probably using a loop where the 1 is replaced by the loop index. Then you don't have to code a hundred lines to process row1 through row100.
Please note especially the last bullet in per's last comment.
Akzeptierte Antwort
per isakson
am 1 Nov. 2017
Bearbeitet: per isakson
am 1 Nov. 2017
"So all I want is as followings" See TUTORIAL: Why Variables Should Not Be Named Dynamically (eval). However, I guess you need to make your own mistakes to understand that it's a really bad idea.
M = ones( 3, 5 );
for rr = 1 : size(M,1)
variable_name = sprintf( 'row%03d', rr );
assign( variable_name, M(rr,:) );
end
where
function assign( varargin )
switch nargin
case { 2 },
if isvarname( varargin{ 1 } )
Name = varargin{ 1 };
else
error( ['poi: First input argument, ', ...
inputname(1), ' must be a legal name'] ),
end,
Value = varargin{ 2 };
otherwise
error( 'poi: Wrong number of input arguments' ),
end
assignin( 'caller', Name, Value );
end
6 Kommentare
Muhammad Ammar bin Faizul Azli
am 27 Nov. 2020
@Stephen Cobeldick
May i know what would your code be if i were to do the same for column?
Steven Lord
am 27 Nov. 2020
With functionality available now, I'd probably use a table array instead of a numeric array.
cities = ["Albuquerque"; "Boston"; "Chicago"; "Dallas"];
dist = array2table(magic(4), 'VariableNames', cities, 'RowNames', cities)
distBC = dist{'Boston', 'Chicago'}
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Discrete Multiresolution Analysis finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!