values in file names
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
franco otaola
el 10 de Oct. de 2016
Comentada: franco otaola
el 10 de Oct. de 2016
hello everybody i am trying to use the name of the files (that are numbers) 09.xls,08.xls....etc. to create a matrix with them so i can relate them with the values they have inside.
d=dir('*.xls')
Name=ones(1,length(d));
for i=1:length(d)
[path,name,ext]=fileparts(d(i).name);
B=Name*name
...
end
my problem is that when i try to use name (as an escalar)to have the value it use '09' for exaple. then i try to make the matrix with all the values together(B) so, each value is stocked inside the matrix as the loop advance, matlab gives me things that doent have any sense (or at least for me...). eg. i have 9 excels, 02,03,04,05,06,07,08,09,10.xls so each time name would give 02,03,04,05,06,07,08,09 and 10 and the matrix Name would be [1;1;1;1;1;1;1;1;1] (a matrix of 9x1) when i try to calculate B (as in the code B=Name*name), matlab gives me B=[48,49;48,49;48,49;48,49;48,49;48,49;48,49;48,49;48,49] (a matrix of 9x2) i typed in the command window Name and name and it gives me the values i attend
>> name
name =
10
>> Name
Name =
1
1
1
1
1
1
1
1
1
>> Name*name
ans =
49 48
49 48
49 48
49 48
49 48
49 48
49 48
49 48
49 48
Respuesta aceptada
KSSV
el 10 de Oct. de 2016
d=dir('*.xls')
Name=ones(1,length(d));
for i=1:length(d)
[path,name,ext]=fileparts(d(i).name);
B=Name*name ;
end
In the above Name is number and class double, where as name is string and class char. You cannot multiply two different classes. You have to convert name to number using str2num(). That's why it worked after converting.
You can check the classes of variables using class().
Más respuestas (0)
Ver también
Categorías
Más información sobre Whos 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!