values in file names
1 回表示 (過去 30 日間)
古いコメントを表示
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
採用された回答
KSSV
2016 年 10 月 10 日
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().
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Whos についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!