2017-06-20 113 views
3
fid =fopen(datafile.txt','r'); 
data = textscan(fid, '%f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f'); 
plot3(data(:,5),data(:,6),data(:,7)) 
fclose(fid); 

我收到錯誤:MatLab幫助!使用plot3錯誤沒有足夠的輸入參數

Error using plot3
Not enough input arguments.

我要去哪裏錯了嗎?我的數據文件只是雙列(因此,%f

+0

你是否'data'實際上是從獲取文本文件中的正確的信息? – kedarps

回答

2

這是錯誤信息不是很多的情況之一。這裏的問題不在於有沒有足夠的輸入參數,那就是他們是錯誤的類型...

您的問題是textscan實際上在返回加載數據的一個1×N的cell array,其中N是文件中的列數(即格式說明符,如%f)。每個單元格保存一列數據。你需要使用大括號,以便將其傳遞給plot3細胞extract the contents,就像這樣:

plot3(data{5}, data{6}, data{7}); 
+1

它不應該是'data {5},data {6}'和'data {7}'嗎?我相信嵌套的單元格數組包含單個單元格,其中每個單元格表示您正在查找的列。 'data {:, 5}'也會產生一個以逗號分隔的列表,所以我不確定用'plot3'調用它時會產生什麼。 – rayryeng

+1

@rayryeng:是的,把它寫成'data {5}'就更清楚了,但它仍然可以工作,即使是'data {:, 5}',因爲第一維的大小應該是1(默認輸出' textscan'總是一個N,我相信)。 – gnovice

+0

是的,這是正確的。感謝您的討論! – rayryeng

相關問題