Matlab 读取每行数据格式不一样的文件

clc;

clear;

fid = fopen('aaa.txt');%fid是通过fopen函数打开文件后得到的一个整型的文件标识
tline = fgetl(fid);%fgetl从这个文件中读取一行数据并丢弃其中的换行符。如果读取成功,tline容纳了读取到的文本字符串,

%如果遇到文件末尾的结束标志(EOF),则函数返回-1,即tline值为-1。 
%返回的字符串tline并不包含文本行的行终止符。要得到行终止符,可以使用函数fgets。 
while ischar(tline)%判断tline变量是否是字符串类型的变量
disp(tline);%显示出每行读取的文本
tline = fgetl(fid);%再读取一行

%这儿可以对每行的数据进行处理
end

fclose(fid);%关闭文件

MATLAB中,如果你有一个TXT文件,其中每一行的数据格式不一致,比如每行有不定数量的数值,想要将每行都转换成固定长度的11个数,通常可以按照以下步骤操作: 1. **读取TXT文件**: 使用`textread`函数可以逐行读取文本文件内容。如果不确定每行的具体分隔符,可以设置为`\s+`(匹配空格、制表符等空白字符),它会尝试找出连续的空白分隔每个字段。 ```matlab data = textread('file.txt', '%s', 'delimiter', '\s+', 'headerlines', 0); ``` 这里的`headerlines`设为0表示跳过第一行(如果有的话,它是标题行)。 2. **处理数据**: 对于每行数据,可能需要进一步处理以调整为固定长度。这可能包括查找最长的一行,并用缺失值(如`NaN`或特定字符,如`.`)填充较短的行。例如: ```matlab maxLength = max(cellfun(@(x) length(x), data)); formattedData = cell(size(data)); for i = 1:length(data) row = strvcat(data{i}, repmat(' ', maxLength - length(data{i}))); formattedData{i} = reshape(row, [], 11); % 将行转换为11列矩阵,不足的用NaN填充 end ``` 3. **数组化数据**: 如果你想得到的是一个二维数组,可以把所有行连接起来: ```matlab result = vertcat(formattedData{:}); ``` 请注意,这个过程假设你的数据可以用空格或其他简单的方式均匀分布。如果数据结构复杂,可能需要使用更复杂的解析方法,比如正则表达式或者自定义函数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值