Using loop in strings for import
조회 수: 1 (최근 30일)
이전 댓글 표시
I have excelfiles with names "2011", "2012", "2013" that i want to read from Matlab. I want to use a for loop reading these excelfiles, since tha names are so alike.
This did not work
for i = 2011:1:2013; xlsread('adress\(i).xlsx');
It does not seem like Matlab interprest the "i" in the string at a number, but onlye as an "i". Anybody know how to solve this?
댓글 수: 1
Alessandro Renna
2013년 5월 6일
You can also use
num2str(i)
to convert the numerical variable i in a string variable and then concatenate it to the string '.xlsx'
So:
for i=2011:1:2013
file{i}=xlsread([num2str(i) '.xlsx']);
end
채택된 답변
per isakson
2013년 4월 30일
편집: per isakson
2013년 4월 30일
The number, e.g. 2012, must be converted to a string. Note the double back-slash, "\\"
for ii = 2011:1:2013
[ num, txt ] = xlsread( sprintf( 'adress\\%i.xlsx', ii ) );
end
추가 답변 (1개)
Jacob Lynch August
2014년 3월 24일
I have a similar problem. I have data taken from multiple machines with variable conditions, and a consistent heirarchy. E.g.
- Machine = MAA, MAB, MAC, ..., MBH
- Condition = 100, 200, 300, ..., 800
- Part = Gold, Platinum, Silver
File = X:\Folder\Machine\Condition_Part\dat.csv
I want to treat text as I would a numerical list in a for loop. Obviously ['MAA' 'MAB' ... 'MBH'] would just concatenate the strings into one, which is not useful. I tried variations of the following and a few functions like strcat to name the file to no avail.
for machine = {'MAA' 'MAB' 'MAC' ... 'MBH'}
for condition = {'100' '200' '300' ... '800'}
for part = {'Gold' 'Platinum' 'Silver'}
CSV = ['X:\Folder\' machine '\' condition '_' part '\dat.csv']
end
end
What's the best way to generally go about this without elseif or cases?
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Environment and Settings에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!