打开文本文件,扫描并在MATLAB中绘制

时间:2017-10-06 04:09:47

标签: matlab plot import

我正在尝试在MATLAB中打开一个文本文件并将其绘制在图表中。以下是我的代码:

%% Get the data 
[filename, pathname] = uigetfile('*txt', 'Pick text file');
x=filename(:,1);
y=filename(:,2);
plot(x,y);

但是每次运行它都会出现以下错误:

Error using plot
Invalid first data argument.
Error in readtxtfile (line 5)
plot(x,y); 

我导入的文本文件有2行。我打算在MATLAB中用第二个说法图(第1行,第2行)绘制第一行。

1 个答案:

答案 0 :(得分:1)

您将filename中存储的文件的名称与pathname中存储文件的目录的路径相结合,但实际上您还没有读取任何内容。要做到这一点,最简单的方法是使用dlmread。我假设你的文本文件格式正确,有两行数据,如你所述。如果是这种情况,您需要更改索引到数据的方式。您可以将整个列而不是行编入索引,因此您需要在代码中翻转索引。此外,您需要调用dlmread,然后访问结果矩阵的列:

%% Get the data 
[filename, pathname] = uigetfile('*txt', 'Pick text file');
data = dlmread(fullfile(pathname, filename));
x=data(1,:);
y=data(2,:);
plot(x,y);

请注意,我创建了文件的完整路径以使用fullfile,因为使用uigetfile可以让您从计算机上的任何位置读取文件,因此我们确保捕获完整路径你的档案。再次重申一下,pathname是包含文件的目录,filename是目录中包含的文件的名称。