我正在尝试在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行)绘制第一行。
答案 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
是目录中包含的文件的名称。