2010-05-14 31 views
1

我有一個問題,我以爲我知道我可以如何修復,但顯然我失敗了。MATLAB - 如何將.mat文件中的數據導入並繪製爲x和y變量?

我得到了一個.mat我創建的文件。它有兩列和25行數字。我想做一個循環來獲取第一列中的每個值並將其放入X值中,並將第二列放入Y值中。然後我需要繪製圖上的點。

我知道如何做循環,並繪製..但我沒有提取數據,並把它們放在X和Y值。

這是我的審判代碼:

 load figureinfo.mat 
     for K=1:25 
      x=X(:,K) ~~ I remember that the code looks something like that to extract .. 
      y=Y(:,K) 
      plot(x,y,'o') 
      hold on 
     end 

我如何獲取數據,並把它在X和Y?

另外,(:,b)的「ROWS」在哪裏? b=Columns,但我在哪裏放行?

回答

4

嘗試以下操作:

load figureinfo.mat; %# assume this contains a matrix called figureinfo 
X = figureinfo(:,1); %# numbers from all rows, column 1, into X 
Y = figureinfo(:,2); %# numbers from all rows, column 2, into Y 
plot(x,y,'o'); 

或者更簡單地說,

load figureinfo.mat; 
plot(figureinfo(:,1), figureinfo(:,2), 'o'); 

如果你沒有在你的.mat文件瞭解矩陣的名字,我建議:

clear %# clear all variables from workspace 
load figureinfo.mat; 
whos 

它將顯示您剛加載的任何名稱,大小和數據類型。

如果你真的想在一個循環中提取數據,你有兩個選擇:

load figureinfo.mat; %# assume this contains a matrix called figureinfo 
X = []; 
Y = []; 
for ctr = 1:length(figureinfo) 
    X = [X figureinfo(ctr,1)]; 
    Y = [Y figureinfo(ctr,2)]; 
end 

或(更快,因爲它沒有保存再分配XY

load figureinfo.mat; %# assume this contains a matrix called figureinfo 
X = zeros(length(figureinfo),1); 
Y = zeros(length(figureinfo),1); 
for ctr = 1:length(figureinfo) 
    X(ctr) = figureinfo(ctr,1); 
    Y(ctr) = figureinfo(ctr,2); 
end 
+0

謝謝非常多..我得到'???未定義的變量figureinfo.' ..這是因爲我可能創建了一個不正確的mat文件?我只有兩列,他們有數字..看起來有效的權利? – NLed 2010-05-14 20:20:18

+1

我假定'.mat'文件中的變量被稱爲'figureinfo'。對我來說這是一個糟糕的假設。嘗試做清楚;載入figureinfo.mat; whos'找到矩陣的真實名稱。 – mtrw 2010-05-14 20:22:56

+0

啊,工作,謝謝!!!!! :)還有一件事,如果我想做一個循環來逐行提取每個值並繪製它,我應該在哪裏放置「(K)」(:,2)? – NLed 2010-05-14 20:26:28

相關問題