How to remove \n and empty line after combine all the lines into an array
15 次查看(过去 30 天)
显示 更早的评论
I have a txt file 'map1.txt'
1 Ai.A
2 i.i.
3 .Aii
4 AiiA
I want to concatenate all the lines of the file into an array.
'Ai.A'
'i.i.'
'.Aii'
'AiiA'
However, my arr includes ↵ and ' '
'Ai.A↵'
'i.i.↵'
'.Aii↵'
'AiiA↵'
' '
Can anyone show me how to remove ↵ and ' '
This is my code. Thank you for your help!!!
fh = fopen('map1.txt')
line = fgets(fh)
vec = [line]
while ischar(line)
line = fgets(fh);
vec(end+1,:) = line;
end
0 个评论
采纳的回答
per isakson
2019-6-15
编辑:per isakson
2019-6-15
Replace
fgets
by
fgetl
fgetl, Read line from file, removing newline characters
In response to comment
To remove the ending "blank" row, replace
while ischar(line)
by
while not(feof(fh))
while not(feof(fh)) avoids reading one or more trailing empty lines, i.e. lines containing only newline characters.
To remove trailing rows that contains pure white-space add these lines to the end of the script
while isempty(strtrim(vec(end,:)))
vec(end,:)=[];
end
6 个评论
per isakson
2019-6-15
编辑:per isakson
2019-6-15
Surprice! The last row are not spaces, it's nulls
>> double(vec)
ans =
65 105 46 65
105 46 105 46
46 65 105 105
65 105 105 65
0 0 0 0
The last row is caused by one trailing empty line in combination with while ischar(line)
See the addendum to my answer.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 File Operations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!