打开一个文本文件,扫描并将其绘制在MATLAB中

问题描述:

我想在MATLAB中打开一个文本文件并将其绘制在图形中。下面是我的代码:打开一个文本文件,扫描并将其绘制在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); 

,我进口的有两行的文本文件。我打算在MATLAB中绘制第一行和第二个说明图(第1行,第2行)。

您将存储在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是目录中包含的文件的名称。

+0

这段代码的工作原理我可以一起绘制它......但我得到的只是一条直线情节,我不是在寻找我不知道这是怎么发生的我觉得它没有读取txt文件 – Matlaber

+0

它现在通过以下修改工作 'x = data(:,1);' 'y = data(:,2);' – Matlaber

+0

您说你的文本文件有两个ROWS,而不是COLUMNS。在将来,确保你知道他们的区别是什么。这就是为什么我将代码更改为与原始代码相比的原因。 – rayryeng