2017-10-11 641 views
0

我打算用matlab繪製速度與時間的關係圖。時間變更爲0.05,總時間爲15。當時間改變時,圖形會改變並保存一個圖。我有mat文件,其中包含時間和速度的所有數據。matlab中有兩個變量的繪圖圖

E.g,t=0v=0,情節和保存,t=0.05v=1,情節和保存,直到t=15

我試圖使用v=v+1(其行爲像i++)但未能讀取第二行中的v的值。任何其他方法來做到這一點?

謝謝。 代碼是

i = 001 
dt = t(2,1) - t(1,1); 
k = dt*(i-1); 
filename1 = 'front_data'; 
matFileName = sprintf('%s.mat', filename1); 
matData = load(matFileName); 
t = matData.time; 
fv = matData.front_velocity; 
fig = figure%('visible', 'off'); 
s = t(1,1); 
fv = fv(1,1); 
lot (s,fv,'*') 
pic_filename = sprintf('front_data%02d.jpeg', k); 
print(fig,pic_filename,'-djpeg') 

istart = 002 
iend = 301 

for i = istart:iend 
    k = dt*(i-1); 
    t = t+dt 
    filename1 = 'front_data'; 
    matFileName = sprintf('%s.mat', filename1); 
    matData = load(matFileName); 
    t = matData.time; 
    fv = matData.front_velocity; 

    v = fv(1,1); 
    v = v+1; 
    h = figure 
    axis([0 15 0 0.6]) 
    plot(t,v,'*') 
    pic_filename = sprintf('front_data%02d.jpeg', k); 
    print(h,pic_filename,'-djpeg') 
end 

而且我指的例子是[https://www.mathworks.com/matlabcentral/answers/110632-how-to-increment-a-variable]

+2

請與我們分享您的代碼 – Irreducible

+0

簡短的問題,你爲什麼要設置'我= 001'而不只是'我= 1'。儘管如此,在你的循環中,你正在設置't = t + dt',以便稍後重寫它。你爲什麼延遲't'的整個時間序列,而不僅僅是第一個起點?請添加加載的matData.time和front_velocity的最小示例。 – Irreducible

+0

i = 001只是因爲我需要讀取300個文件,最終matlab仍然讀取i = 1。你在你的循環中意味着什麼,你正在設置t = t + dt只是爲了覆蓋5行以後_?我計劃爲t和v繪製第一行,以確保一切正常,然後僅使用循環處理其餘部分。關於加載matData.time的例子,只是簡單的從mat文件中讀取數據'matFileName = sprintf('%s.mat',filename1); matData = load(matFileName);'。 – K3iTH

回答

0

我你的榜樣減少到主要部分。

istart = 2; 
iend = 301; 
counter=istart; 

%load data 
% filename1 = 'front_data'; 
% matFileName = sprintf('%s.mat', filename1); 
% matData = load(matFileName); 
% t = matData.time; 
% fv = matData.front_velocity; 

%for demonstaration 
t=0:.05:15; 
fv=rand(size(t)); 

for i = istart:iend 
    %update 
    time = t(istart:counter); 
    values = fv(istart:counter); 
    %plot 
    plot(time,values,'*') 
    %increase index 
    counter=counter+1; 
end 

當您正在加載總是在循環相同的數據,你可以做一次外循環,並繪製你剛剛更新向量的長度要繪製。您也可以將新值附加到實際列表中。

+0

編碼是工作,不幸的是它沒有根據順序進行繪圖。我需要爲每個時間步驟生成情節方面,以生成一個電影來描述對t的變化。上面的代碼是隨機繪製的。任何想法? – K3iTH

+0

我現在設法讓代碼生效。非常感謝.. – K3iTH