我打算用matlab繪製速度與時間的關係圖。時間變更爲0.05
,總時間爲15
。當時間改變時,圖形會改變並保存一個圖。我有mat文件,其中包含時間和速度的所有數據。matlab中有兩個變量的繪圖圖
E.g,t=0
,v=0
,情節和保存,t=0.05
,v=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]
請與我們分享您的代碼 – Irreducible
簡短的問題,你爲什麼要設置'我= 001'而不只是'我= 1'。儘管如此,在你的循環中,你正在設置't = t + dt',以便稍後重寫它。你爲什麼延遲't'的整個時間序列,而不僅僅是第一個起點?請添加加載的matData.time和front_velocity的最小示例。 – Irreducible
i = 001只是因爲我需要讀取300個文件,最終matlab仍然讀取i = 1。你在你的循環中意味着什麼,你正在設置t = t + dt只是爲了覆蓋5行以後_?我計劃爲t和v繪製第一行,以確保一切正常,然後僅使用循環處理其餘部分。關於加載matData.time的例子,只是簡單的從mat文件中讀取數據'matFileName = sprintf('%s.mat',filename1); matData = load(matFileName);'。 – K3iTH