- Why do you need that?
- See TUTORIAL: Why Variables Should Not Be Named Dynamically (eval)
How to name every row of 100*2500 matrix?
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Md Monirul Islam
el 1 de Nov. de 2017
Comentada: Steven Lord
el 27 de Nov. de 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 comentarios
Md Monirul Islam
el 1 de Nov. de 2017
Editada: per isakson
el 1 de Nov. de 2017
Les Beckham
el 1 de Nov. de 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.
Respuesta aceptada
per isakson
el 1 de Nov. de 2017
Editada: per isakson
el 1 de Nov. de 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 comentarios
Muhammad Ammar bin Faizul Azli
el 27 de Nov. de 2020
@Stephen Cobeldick
May i know what would your code be if i were to do the same for column?
Steven Lord
el 27 de Nov. de 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'}
Más respuestas (0)
Ver también
Categorías
Más información sobre Discrete Multiresolution Analysis en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!