簡體   English   中英

通過調用 Matlab 在 Fortran 循環中創建實時 plot

[英]Create a real-time plot in a Fortran cycle by calling Matlab

我在 Fortran 中有一個循環,我想調用一個 Matlab 腳本,該腳本在每次迭代中簡單地繪制我正在計算的 2 個變量,總是在同一個圖中,以一種我可以看到我的解決方案如何隨時間演變的方式(基本上一段錄像)

do i=1,n
   Y(1:m) = blabla 
   X(1:M) = blabla
   write X and Y on file 
   RUN a matlab script which reads file and plots X and Y
enddo

如果有一種方法可以繞過對文件的寫入,並且我可以將變量作為參數傳遞甚至更好,因為它會更有效(我懷疑這是可能的)。 基本上,我希望實時繪制結果,這樣我就可以捕捉到解決方案是否不穩定,而不必等到模擬結束。

*只是一些可能有用的東西(隨意編輯和構建)

動畫 plot 可能有助於視頻,例如在同一圖中發生的繪圖。 我試圖盡可能多地推入 function。 不知道如何實現從 Fortran 將變量傳遞給 MATLAB 腳本(將對其進行調查)。


但是,如果您願意先計算所有點,然后將它們傳遞給 MATLAB 進行動畫處理,這可能會有所幫助(需要注意的是,當數據被計算並立即傳遞以進行繪圖時,這不會有實時時間)。

動畫情節

clf;
Animated_Plot = animatedline;

for x = 0: +1: 100    
    y = 0.5*x;
    Add_Data_Points(x,y,Animated_Plot);
end

function [] = Add_Data_Points(x,y,Animated_Plot)
    hold on
    addpoints(Animated_Plot, x, y);
    drawnow
    axis([0 100 0 100]);
    xlabel("x"); ylabel("y");
end

使用 MATLAB R2019b 運行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM