打开一个文本文件,扫描并将其绘制在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
是目录中包含的文件的名称。
这段代码的工作原理我可以一起绘制它......但我得到的只是一条直线情节,我不是在寻找我不知道这是怎么发生的我觉得它没有读取txt文件 – Matlaber
它现在通过以下修改工作 'x = data(:,1);' 'y = data(:,2);' – Matlaber
您说你的文本文件有两个ROWS,而不是COLUMNS。在将来,确保你知道他们的区别是什么。这就是为什么我将代码更改为与原始代码相比的原因。 – rayryeng