关于matlab读取.dat文件的数据,利用textread读取之后为cell,cell2mat转换时出错,

部分数据如下(2_2.dat):X坐标观测值0-7.99852-6.664-5.28186-3.98478-3.488910-1.0282%%数据读取代码:clear;c... 部分数据如下(2_2.dat):

X坐标 观测值
0 -7.9985
2 -6.66
4 -5.2818
6 -3.9847
8 -3.4889
10 -1.0282

%%数据读取代码:
clear;clc;
[x,y]=textread('2_2.dat','%s%s','headerlines',1);
n=length(x);
%%希望可以利用该数据进行计算和plot成图要将其转换为数据型,
M = cell2mat(x);

%%出现错误提示
%错误使用 cat
%串联的矩阵的维度不一致。
%出错 cell2mat (line 83)
% m{n} = cat(1,c{:,n});
%出错 Untitled (line 4)
%M = cell2mat(x)

%利用load读取时
load 2_2.dat;
%提示错误
错误使用 load
ASCII 文件 2_2.dat 的行号 1 中的文本未知
"X坐标"。
急!新人求助,
展开
 我来答
learneroner
高粉答主

2016-03-24 · 关注我不会让你失望
知道大有可为答主
回答量:1.1万
采纳率:91%
帮助的人:6572万
展开全部

其实你原来的代码已经成功读取数据了,只需修改一个地方即可:

[x,y]=textread('2_2.dat','%s%s','headerlines',1); 中 '%s%s'表示读取字符串,如果改为'%f%f'则是读取浮点数,那么就不需要cell2mat转换了,修改后为:

[x,y]=textread('2_2.dat','%f%f','headerlines',1);  % 此时x为第一列数,y为第二列数
plot(x,y)  % 可以直接使用x,y

追问
原来是这样啊,真是太感谢了,可惜不能采纳你的回答了,那么如果我要用load来读取数据该怎么做呢
追答
load可以读取规则的数据,你去掉数据的第一行文本就可以读入了。
qingningleyun
推荐于2018-03-19 · TA获得超过5854个赞
知道大有可为答主
回答量:2991
采纳率:30%
帮助的人:3048万
展开全部

% 用 dlmread

% Read ASCII-delimited file of numeric data into matrix 

% Syntax

% M = dlmread(filename)

% M = dlmread(filename, delimiter)

% M = dlmread(filename, delimiter, R, C)

% M = dlmread(filename, delimiter, range)

fn = '2_2.txt';
dt = dlmread(fn,' ',1,0);  % 读第2行开始的所有列
x = dt(:,1);
y = dt(:,2);
plot(x,y,'r-');
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式