2017-10-06 9 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); 

私は、インポートテキストファイルには2行があります。私はMATLABで2行目のプロット(行1、行2)で最初の行をプロットする予定です。

答えて

1

に格納されているファイル名は、ファイルが格納されているディレクトリへのパスと組み合わせてpathnameになっていますが、実際にはその内容は読み取れません。これを行うには、最も簡単な方法はdlmreadです。私はあなたのテキストファイルが2行のデータを持つように正しく書式設定されていると仮定しています。このような場合は、データにインデックスを作成する方法を変更する必要があります。行ではなく列全体を索引付けするので、索引付けをコード内で行う必要があります。また、あなたはその結果の行列の列にアクセスし、dlmreadへの呼び出しを必要とする:uigetfileを使用すると、あなたはどこからでもファイルを読み込むことができますので、私はfullfileを使用するようにファイルへのフルパスを作っ

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

お知らせあなたのコンピュータ上であなたのファイルへの完全なパスをキャプチャすることを確認します。繰り返すと、pathnameはファイルが格納されているディレクトリ、filenameはディレクトリに格納されているファイルの名前です。

+0

私はそれを一緒にプロットすることができました...しかし、私が得たものは、私が探していなかった単なる直線プロットでした。私はそれがどう起こったのか分かりません。 txtファイル – Matlaber

+0

'x = data(:、1);' 'y = data(:、2);' – Matlaber

+0

あなたのテキストファイルにはCOLUMNSではなくROWSが2つあります。将来的には、その違いが何であるかを確認してください。だから私はあなたのオリジナルと比較されるようにコードを変更しました。 – rayryeng

関連する問題