1. 程式人生 > >Matlab使用Plot函式實現資料動態顯示方法總結

Matlab使用Plot函式實現資料動態顯示方法總結

引子

對於真實系統或者模擬平臺,資料是增量式的產生的。Matlab除了強大的矩陣運算外,還具有強大的資料視覺化庫。由於靜態畫圖的方法較多,本文只針對增量式資料流的動態顯示。本文主要介紹幾種Matlab實現資料的動態顯示方法。方法主要有兩種:

  • hold on
  • set函式與drawnow函式組合

hold on 方法

1. 方法介紹

此種方法比較原始,適合於即時資料,原理是先畫上一幀,接著保留原始影象,追加下一幀影象,此種方式比較繁瑣,涉及畫圖細節,並且沒有完整並連續的Line物件資料。此種方法需要注意的地方是,若想生成連續的線圖,則每次plot至少兩個點,原理大家都應該理解,兩點一線嘛!如果想每次一個點增量式的畫圖,則線型選擇’.’。

2. 程式碼與圖例

t=0;
m=0;
t1=[0 0.1]; %若'-'至少同時輸入兩個點,兩點一線嘛!!!而'.'則不用
m1=sin(t1);
p = plot(t1,m1,'-b','MarkerSize',5);   
x=-1.5*pi;
axis([x x+2*pi -1.5 1.5]);
grid on;

for i=1:1000
    hold on
    t=0.1*i; %下一個點
    m=t-floor(t);
    t1=t1+0.1; %下一段線
    m1=sin(t1);
    p = plot(t1,m1,'-b','MarkerSize',5);   
    x=x+0.1
; axis([x x+2*pi -1.5 1.5]); pause(0.01); end

hold on

set函式與drawnow函式組合

1. 方法介紹

這種模式比較適合畫動畫,效率比較高,重新整理閃爍小,適合即時資料,最終的Line結構資料完整。
瞭解此方法之前要搞清楚 Plot函式的原型是什麼: 每個Plot由一個控制代碼維護,而可以通過set函式對該控制代碼對應的plot引數線上的更新,若線上更新plot的資料,則可實現動態顯示的效果。
最後使用drawnow函式對plot進行重新整理。

2. 程式碼與圖例

t=[0]
m=sin(t)
p = plot(t,m,'EraseMode'
,'background','MarkerSize',5); x=-1.5*pi; axis([x x+2*pi -1.5 1.5]); grid on; for i=1:1000 t=[t 0.1*i]; m=[m sin(0.1*i)]; set(p,'XData',t,'YData',m) drawnow x=x+0.1; axis([x x+2*pi -1.5 1.5]); pause(0.01); end

set函式與drawnow函式組合動態效果展示

總結

本文介紹了兩種實現即時資料視覺化的方法。也就是看上去的動態顯示效果。分別給出了兩種方法的原理介紹和示例程式與圖例。相信這兩個簡單的例子經過你的運用可以變幻出多姿多彩的資料視覺化效果。

這裡寫圖片描述

相關推薦

Matlab使用Plot函式實現資料動態顯示方法總結

引子 對於真實系統或者模擬平臺,資料是增量式的產生的。Matlab除了強大的矩陣運算外,還具有強大的資料視覺化庫。由於靜態畫圖的方法較多,本文只針對增量式資料流的動態顯示。本文主要介紹幾種Matlab實現資料的動態顯示方法。方法主要有兩種: hol

python中plot實現即時資料動態顯示方法

在Matlab使用Plot函式實現資料動態顯示方法總結中介紹了兩種實現即時資料動態顯示的方法。考慮到使用python的人群日益增多,再加上本人最近想使用python動態顯示即時的資料,網上方法很少,故

Matlab中使用plot函式動態畫圖方法總結

原文 Matlab除了強大的矩陣運算,模擬分析外,繪圖功能也是相當的強大,靜態畫圖沒什麼問題,由於Matlab本身的多執行緒程式設計缺陷,想要動態的畫圖,並且能夠很好的在GUI中得到控制,還不是一件很容易的事情,下面總結幾種方法。一. AXIS 移動座標系     這種方法

css實現水平垂直居中方法總結

form 位置 absolute div 技術 .com 完成 flex image 方法一:使用position 元素已知寬度 <div class="box"> <div class="content"></div> <

c++實現資料交換的方法

c++實現資料交換的方法有四種: 1、通過指標完成: template void swap(T *px, T *py){ T temp = *px; *px = *py; *py = temp; } 其呼叫形式:swap(&px, &py) 2通過引用完成:(c++特有

JS實現陣列去重方法總結(三種常用方法)

方法一: 雙層迴圈,外層迴圈元素,內層迴圈時比較值 如果有相同的值則跳過,不相同則push進陣列 Array.prototype.distinct = function(){  var arr = this,result = [], i,j,len = arr.length;  f

原生Js實現複製功能的方法總結,execCommand和clipboardData的使用

原生Js實現複製(Copy)的兩種方法,一種是利用 clipboardData,另外一種則是用 execCommand(),今天將統一講解一下關於他們的使用方法。   document.execCommand 當一個HTML文件切換到設計模式(designMode)時,文件物件

原生Js實現複製(Copy)的方法總結:execCommand和clipboardData的使用

原生Js實現複製(Copy)的兩種方法,一種是利用 clipboardData,另外一種則是用 execCommand(),今天將統一講解一下關於他們的使用方法。   document.execCommand 當一個HTML文件切換到設計模式(designMode)時,文件物件

sqrt函式實現之卡馬克方法

sqrt函式的實現主要有三種方式: 1 二分法 2 牛頓法 3 卡馬克方法 float InvSqrt(float x) { float xhalf = 0.5f*x; int i = *(int*)&x; // get bits for fl

css 實現水平居中的方法總結

css 實現水平居中,垂直居中,水平垂直居中,是css 入門的必修課題,也是程式碼實踐,筆試面試中經常遇到的場景。這次的內容主要圍繞著幾種場景下的,多種水平居中方法的實現 實現場景:藍色方塊需要在父元素內部水平居中 1. 居中元素為塊級元

JS各種基本資料型別常用方法總結(看這篇就夠了)

所有語言的基本資料型別就是那麼幾種,因為之前一直從事移動端,在學習js的過程中,總結一下js的基本型別及用法。 JavaScript 資料型別:字串、數字、布林,物件、Null、Undefined 1.String(字串):  字串可以是引號中的任意文字。您可以使用

Android採用ListView實現資料列表顯示

(1)、首先設計介面,使用上面一個數據庫專案,將資料庫中的所有資料用ListView顯示在螢幕上:新建一個佈局檔案item.xml <TextView        android:layou

D2admin框架:V-charts統計圖資料動態顯示

(個人筆記,可能有不正確之處,還需修改) 框架&資料庫:node.js+D2admin+V-charts+SQL Server 使用Axios 步驟: 1.安裝模組express、mssql,建立後端資料操作檔案server.js (寫明資料連線資訊,資料庫

第一次使用echart從後臺獲取資料動態顯示到頁面

第一次使用Echart繪製圖表,看了兩天,終於結合後臺給整出來了。走過之後再看看,其實很簡單的。不多說了,直接上圖: 第一步:去echarts官方下載最新的js; 官方地址 : echarts.baidu.com             我下的是3.4.0版的:echar

JavaScript實現陣列去重方法總結(六種方法)

方法一:雙層迴圈,外層迴圈元素,內層迴圈時比較值如果有相同的值則跳過,不相同則push進陣列Array.prototype.distinct = function(){ var arr = this, result = [], i, j, len = arr

mysql資料匯入匯出方法總結

MySQL資料備份還原方式總結: 一、將資料匯入到指定的資料庫 第一種匯入方式: (linux下和Windows 下語法是一樣的,只是路勁的書寫方式不同而已)  1、建立一個空資料庫  2、進入MySQL安裝目錄bin下  3、匯入命令 mysql  -uroot –p

關於在Mac上掛載行動硬碟實現資料備份的方法

筆者在入手Mac之後,拿出行動硬碟相像Windows那樣,對Mac裡面的資料進行備份,但是在使用過程中,缺發現了一個問題,就是好像並不能將Mac裡面的檔案拷貝到硬碟上,後來才得知,原來買來的硬碟預設的Windows下的FTFS格式的,而Mac下與硬碟進行資料交換的格式是Fa

Android中對ListView、RecycleView裡面的資料進行排序方法總結

最近的開發過程中遇到了,按照bean類中的多個欄位進行排序的情況,藉此機會把相關的排序做法,簡單整理備份一下。 1.list的單純排序 2.list元素為bean的情況,按照bean的某一個屬性進行排序 3.list元素為bean的情況,按照bean的多個屬性進行排序 import java.util.A

Android開發入門之採用ListView實現資料列表顯示

再次用到上一篇寫過的db工程, activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://s

html資料動態顯示、利用ajax動態顯示mysql的資料

前段時間做個關於資料採集的課設,內容是把溫溼度採集儲存到mysql裡,再用網頁顯示出來。然而網頁的動態顯示卡了好久(溫溼度一直更新,靜態html不能一直重新整理),多次請教最後還是解決了,方法就是利用ajax來實現。 準備工作 環境:php環境、jque