2017-10-06 35 views
0

我想在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行)。

回答

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是目錄中包含的文件的名稱。

+0

這段代碼的工作原理我可以一起繪製它......但我得到的只是一條直線情節,我不是在尋找我不知道這是怎麼發生的我覺得它沒有讀取txt文件 – Matlaber

+0

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

+0

您說你的文本文件有兩個ROWS,而不是COLUMNS。在將來,確保你知道他們的區別是什麼。這就是爲什麼我將代碼更改爲與原始代碼相比的原因。 – rayryeng

相關問題