Ⅰ 關於matlab的圖例
% 把每個句柄記錄下來,可以選擇需要的線的句柄,進行legend
h1=plot(t1,U1_A,'-r','linewidth',1.0);
hold on;
h2=plot(t2,U1_S,'o','markerfacecolor','w','linewidth',0.5);
hold on;
h3=plot(t1,U6_A,'-r','linewidth',1.0);
hold on;
h4=plot(t2,U6_S,'o','markerfacecolor','w','linewidth',0.5);
hold on;
h5=plot(t1,U10_A,'-r','linewidth',1.0);
hold on;
h6=plot(t2,U10_S,'o','markerfacecolor','w','linewidth',0.5);
legend([h1,h2]',解析解','模擬值'); %需要顯示哪個都可以
legend('boxoff');legend(gca,'Orientation','horizontal');
legend boxoff;
Ⅱ .h5文件怎麼打開
H5文件是層次數據格式第5代的版本(Hierarchical Data Format,HDF5),它是用於存儲科學數據的內一種文件格式和庫文件。接觸容到這個文件格式也是因為上Coursera深度學習課程的時候,作業用到了。它是由美國超級計算與應用中心研發的文件格式,用以存儲和組織大規模數據。目前由非營利組織HDF小組提供支持。
目前,很多商業和非商業組織都支持這種文件格式,如Java,MATLAB,Python,R等。
它是數據文件,不是文本文件。所以無法直接打開查看內容。
H5本身用C程序提供庫函數來提供外部訪問的介面。在Python中,主要使用h5py模塊來操作相關格式。
Ⅲ matlab2009和matlab2012的區別
Copyright © 1999-2020, CSDN.NET, All Rights Reserved
matlab
打開APP
liang890319
關注
Matlab各版本對比 原創
2021-11-14 09:43:52
11點贊
liang890319
碼齡13年
關注
官方文檔主頁
文檔主頁 - MathWorks 中國
各版本對比
MathWorks - Archived MathWorks Documentation - MathWorks 中國
發行說明: MATLAB- MATLAB & Simulink- MathWorks 中國
基本原則還是使用最新版的,如果硬體資源有限可參考主要變化選擇合適的版本 建議2020b以及以後版本
幾個關鍵版本變化
1,支持實時腳本和實時函數.mlx文件
MATLAB® 實時腳本和實時函數是互動式文檔,它們在一個稱為實時編輯器的環境中將 MATLAB 代碼與格式化文本、方程和圖像組合到一起。此外,實時腳本可存儲輸出,並將其顯示在創建它的代碼旁。
什麼是實時腳本或實時函數?- MATLAB & Simulink- MathWorks 中國
MATLAB R2016a - MATLAB 支持 R2016a 及更高版本中的實時腳本,以及 R2018a 及更高版本中的實時函數。
操作系統 - 從 R2019b 開始,在 MATLAB 支持的所有操作系統中,MATLAB 都支持實時編輯器。有關詳細信息,請參閱系統要求。
對於 MATLAB 版本 R2016a 至 R2019a,MATLAB 支持的操作系統中有幾個不支持實時編輯器。
不支持的操作系統包括:
Red Hat Enterprise Linux 6。
Red Hat Enterprise Linux 7。
SUSE Linux Enterprise Desktop 版本 13.0 及更早版本。
Debian 7.6 及更早版本。
此外,一些操作系統需要額外的配置才能在 MATLAB 版本 R2016a 到 R2019a 中運行實時編輯器。如果您無法在系統中運行實時編輯器,請聯系技術支持以了解有關如何配置系統的信息。
2,串口通信新的api
2019b新的串口通信api
串列埠介面有一組新的函數和屬性。現有功能仍可運行,但推薦使用新的函數名稱和屬性。新介面提高了性能。
通過使用 serialportlist 查看計算機上所有串列埠的列表,來開始使用新介面。list = serialportlist
list =
1×4 string array
"COM1" "COM3" "COM4" "COM8"
然後,創建一個 serialport 對象,將數據寫入設備,並從中讀取數據。
s = serialport("COM8",115200);
write(s,1:5,"uint32")
read(s,5,"uint32");
3,tcpip通信新的api
R2020b 優化了tcpip和串口通信
TCP/IP 客戶端介面有一組新的函數和屬性。
您仍可以使用現有函數執行以下操作:
使用 tcpclient 函數創建一個與 TCP/IP 伺服器的 TCP/IP 客戶端連接。
使用 read 函數從遠程主機讀取數據。
使用 write 函數將數據寫入遠程主機。
現在,您可以使用新函數執行以下操作:
使用 echotcpip 函數啟動 TCP/IP 回顯伺服器。
使用 readline 函數從遠程主機讀取一行 ASCII 字元串數據。
使用 writeline 函數向遠程主機寫入一行 ASCII 字元串數據。
使用 configureTerminator 函數為與遠程主機的 ASCII 字元串通信設置終止符。
使用 configureCallback 函數為與遠程主機的通信設置回調函數和觸發條件。
使用 flush 函數刷新緩沖區,以便與遠程主機通信。
通過創建一個連接到 TCP/IP 回顯伺服器的 tcpclient 對象、向其寫入數據和從中讀取數據,開始使用 TCP/IP 客戶端介面。
echotcpip("on",3030)
t = tcpclient("localhost",3030)
write(t,1:5,"uint8")
read(t,5);
有關詳細信息,請參閱 TCP/IP 通信。
串列埠介面:改進了性能
serialport 介面的性能優於 serial 介面。例如,在使用 9600 的默認波特率時,以下代碼中使用 serialport 對象寫入和讀取數據的速度大約是使用 serial 對象寫入和讀取數據速度的 1.1 倍。
% s is a serial object
function timingTest(s,bytecount)
fwrite(s,1:bytecount,"uint8");
fread(s,bytecount,"uint8");
end
% s is a serialport object
function timingTest(s,bytecount)
write(s,1:bytecount,"uint8");
read(s,bytecount,"uint8");
end
不同波特率條件下大致執行時間如下:
s.BaudRate
9600 19200 56000 115200
serial 120 毫秒 68 毫秒 31 毫秒 23 毫秒
serialport 109 毫秒 55 毫秒 21 毫秒 11 毫秒
代碼是在運行 Windows 10 的 Intel(R) Xeon(R) CPU E5-1650 v4 @ 3.60 GHz 測試系統上使用 timeit 函數進行計時的:
bytecount = 100;
timeit(@()timingTest(s,bytecount))
測試是使用串列環回連接器完成的。
有關詳細信息,請參閱串列埠設備。
4,對python的支持
2021b 支持python3.9
2021a 支持3.8 停止支持3.6
2020b停止支持3.5
2019a MATLAB 現在除支持 CPython 2.7、3.5 和 3.6 之外,還支持 CPython 3.7。
2018b Python 介面:在 MATLAB 和 Python 之間傳遞多維數值或邏輯數組
2018a Python 版本 3.4:已停止支持
支持的 Python 版本 - 3.5 或 3.6 版。
5,git的支持
2020a 工程 API:以編程方式獲取最新 Git 修訂版
2019b 比較 Git 分支:顯示差異並保存副本
2019a 源代碼管理集成:將 MATLAB Git 狀態與外部 Git 客戶端同步
2021b新功能
1,實時編輯器任務
幫助使用者自動生成代碼並用用戶界面進行參數調整
實時編輯器任務是可以添加到實時腳本中以執行一組特定操作的 App。您可以將任務添加到實時腳本中,以探查參數並自動生成代碼。使用任務可縮短開發時間、減少錯誤並縮短在繪圖上花費的時間。
任務代表一系列 MATLAB® 命令。您可以採用內嵌方式或在右側顯示其輸出。
文檔
將互動式任務添加到實時腳本中- MATLAB & Simulink- MathWorks 中國
視頻
What Are Live Editor Tasks? Video - MATLAB
2,項目和版本管理
MATLAB and Simulink Projects Video - MATLAB
3,驗證函數輸入
在 MATLAB ® 中使用函數參數驗證來聲明對函數輸入參數的特定限制。您可以約束函數輸入值的類、大小和其他方面,而無需在函數體中編寫代碼來執行這些測試。
Validating Function Inputs Video - MATLAB
新產品
RF PCB Toolbox - 對印刷電路板進行電磁分析
Signal Integrity Toolbox - 對高速串列和並行鏈路進行模擬和分析
重要更新
Lidar Toolbox - 使用激光雷達查看器,以交互方式可視化、分析和預處理激光雷達點雲
Simulink Code Inspector - 使用 Code Inspector 上下文選項卡,檢查兼容性、檢查代碼並直接在模型中查看結果
Simulink Control Design - 設計模型參考自適應控制器
Symbolic Math Toolbox - 在 MATLAB 實時編輯器中提供下一步操作建議,引導用戶完成符號工作流
Wavelet Toolbox - 使用小波分析處理和提取信號和圖像的特徵,以用於 AI 工作流
R2021b - MATLAB 和 Simulink 產品系列發布更新 - MATLAB & Simulink
Release Notes- MATLAB & Simulink- MathWorks 中國
其他
編輯器代碼:自動顯示代碼建議和完成
編輯器重構:自動將選定的代碼轉換為函數
實時編輯器控制項:設置滑塊、下拉列表、復選框和編輯欄位的默認值
實時編輯器動畫:將動畫導出為電影或動畫 GIF
實時編輯器:提高保存實時腳本或函數時的性能
比較工具:比較和合並具有改進的可用性、外觀和語法突出顯示的文本文件
sftp 功能:連接SFTP伺服器
HDF5 介面:使用新功能支持 HDF5 1.10.7
從 MATLAB 直接調用 Python 功能
除了現有的對 2.7、3.7 和 3.8 的支持之外,MATLAB 現在還支持 CPython 3.9
2021a
實時編輯器動畫播放控制項:用於控制動畫的互動式界面
實時編輯器控制項:通過將變數關聯到下拉項和滑塊值,在實時腳本中創建動態控制項
XML 文件:使用 readtable、readtimetable 和其他函數讀取、寫入和導入 XML 文件
低級文件 I/O 函數和遠程數據:對遠程存儲的文件執行讀寫操作
save 和 load 函數與遠程數據:將數據保存、載入和追加到遠程存儲的 v7.3 MAT 文件中
讀取在線數據:使用 readtable、audioread 和其他讀取函數通過 HTTP 和 HTTPS 讀取文件
數據壓縮函數:改進了 zip/unzip 和 tar/untar 的功能
jsonencode:為 JSON 文本添加縮進
創建繪圖實時編輯器任務:以交互方式創建繪圖並生成代碼
C++ 介面支持下列額外的 C++ 語言功能。
Java 引擎應用程序中使用 MATLAB 值對象
支持的 Python 版本,即 3.7 或 3.8 版
增加了對 IMU 感測器的支持
現在,MATLAB Support Package for Raspberry Pi™ Hardware 可為下列 IMU 感測器提供代碼生成和連接到 Raspberry Pi 函數的 IO 支持:
HTS221
LPS22HB
LSM303C
LSM6DSL
LSM9DS1
MPU-6050
MPU-9250
2020b
比較工具:在 MATLAB Online 中比較文本文件
readstruct 和 writestruct 函數:在 XML 文件中讀取和寫入結構化數據
readlines 函數:以字元串數組形式讀取文本文件中的行
HDF5 文件和基於 Web 的數據:使用現有 HDF5 函數讀取和寫入遠程存儲的 HDF5 文件
HDF5 文件:讀取和寫入使用 Unicode 字元編碼的文件名
音頻文件和基於 Web 的數據:使用 audioread、audiowrite 和 audioinfo 讀取和寫入遠程存儲的音頻文件
TCP/IP 客戶端介面:新的函數和屬性
TCP/IP 客戶端介面有一組新的函數和屬性。
您仍可以使用現有函數執行以下操作:
使用 tcpclient 函數創建一個與 TCP/IP 伺服器的 TCP/IP 客戶端連接。
使用 read 函數從遠程主機讀取數據。
使用 write 函數將數據寫入遠程主機。
現在,您可以使用新函數執行以下操作:
使用 echotcpip 函數啟動 TCP/IP 回顯伺服器。
使用 readline 函數從遠程主機讀取一行 ASCII 字元串數據。
使用 writeline 函數向遠程主機寫入一行 ASCII 字元串數據。
使用 configureTerminator 函數為與遠程主機的 ASCII 字元串通信設置終止符。
使用 configureCallback 函數為與遠程主機的通信設置回調函數和觸發條件。
使用 flush 函數刷新緩沖區,以便與遠程主機通信。
串列埠介面:改進了性能
serialport 介面的性能優於 serial 介面。例如,在使用 9600 的默認波特率時,以下代碼中使用 serialport 對象寫入和讀取數據的速度大約是使用 serial 對象寫入和讀取數據速度的 1.1 倍。
源代碼管理:改進了設置 Git 源代碼管理的工作流
現在,您可以將 nullptr 傳遞給 C++ 函數。
MATLAB 現在除支持 CPython 2.7、3.6 和 3.7 之外,還支持 CPython 3.8
Java 包將被刪除
實時編輯器任務:以交互方式從 USB 網路攝像頭捕獲圖像,並在實時腳本中生成 MATLAB 代碼。
2020a
文件編碼:默認情況下,將 MATLAB 代碼文件 (.m) 和其他純文本文件保存為 UTF-8 編碼文件
switch 函數:更靈活地比較對象
file 和 movefile 函數:訪問基於 Web 的存儲服務,如 Amazon Web Services 和 Azure Blob 存儲
數據存儲:使用 writeall 將數據從數據存儲寫入文件
文本文件和電子表格文件:使用 'WriteMode' 參數追加、覆蓋或替換數據
h5create 和 h5write:將字元串數據寫入 HDF5 文件
jsonencode:在 MATLAB 類中自定義編碼
導入工具不再支持導入 HDF5 文件。要以編程方式導入 HDF4 或 HDF-EOS
Ⅳ 轉-matlab讀取hdf5
MATLAB讀取hdf文件
https://blog.csdn.net/good_learner_1/article/details/100047950
版權
1. 顯示hdf文件中的數據集以及屬性等等信息
2. 讀取hdf文件中的數據
3. 讀取數據集的屬性
4. 創建hdf文件
5. 往新建的hdf中寫入數據
6. 給數據集寫屬性
官方中文文檔
1. 顯示hdf文件中的數據集以及屬性等等信息
h5disp('文件名.hdf');
1
例如:
h5disp('dataset/sample_A_padded_20160501.hdf');
# 輸出:
HDF5 sample_A_padded_20160501.hdf
Group'/'
Attributes:
'file_format': '0.2'
Group'/annotations'
Attributes:
'offset': 1520.000000 3644.000000 3644.000000
Dataset'ids'
Size:432
MaxSize:432
Datatype: H5T_STD_U64LE (uint64)
ChunkSize: []
Filters: none
FillValue:0
Dataset'locations'
Size:3x432
MaxSize:3x432
Datatype: H5T_IEEE_F32LE (single)
ChunkSize: []
Filters: none
FillValue:0.000000
Dataset'types'
Size:432
MaxSize:432
Datatype: H5T_STRING
StringLength: variable
Padding: H5T_STR_NULLTERM
CharacterSet: H5T_CSET_UTF8
Character Type: H5T_C_S1
ChunkSize:432
Filters: deflate(4)
Group'/annotations/comments'
Dataset'comments'
Size:17
MaxSize:17
Datatype: H5T_STRING
StringLength: variable
Padding: H5T_STR_NULLTERM
CharacterSet: H5T_CSET_UTF8
Character Type: H5T_C_S1
ChunkSize: []
Filters: none
Dataset'target_ids'
Size:17
MaxSize:17
Datatype: H5T_STD_U64LE (uint64)
ChunkSize: []
Filters: none
FillValue:0
Group'/annotations/presynaptic_site'
Dataset'partners'
Size:2x216
MaxSize:2x216
Datatype: H5T_STD_U64LE (uint64)
ChunkSize: []
Filters: none
FillValue:0
Group '/volumes'
Dataset 'raw'
Size:3072x3072x200
MaxSize:3072x3072x200
Datatype: H5T_STD_U8LE (uint8)
ChunkSize:192x96x7
Filters: deflate(4)
Attributes:
'resolution': 40.000000 4.000000 4.000000
Group'/volumes/labels'
Dataset'clefts'
Size:1250x1250x125
MaxSize:1250x1250x125
Datatype: H5T_STD_U64LE (uint64)
ChunkSize:79x79x4
Filters: deflate(4)
Attributes:
'resolution': 40.000000 4.000000 4.000000
'offset': 1520.000000 3644.000000 3644.000000
Dataset'neuron_ids'
Size:1250x1250x125
MaxSize:1250x1250x125
Datatype: H5T_STD_U64LE (uint64)
ChunkSize:79x79x4
Filters: deflate(4)
Attributes:
'resolution': 40.000000 4.000000 4.000000
'offset': 1520.000000 3644.000000 3644.000000
1
2. 讀取hdf文件中的數據
data= h5read('文件名.hdf','數據集名');
1
例如:
raw = h5read('dataset/sample_A_padded_20160501.hdf',' /volumes/raw ');
1
3. 讀取數據集的屬性
attribute = h5readatt('文件名.hdf','數據集名','屬性名');
1
例如:
resolution = h5readatt('dataset/sample_A_padded_20160501.hdf','/volumes/raw','resolution');
1
4. 創建hdf文件
h5create('文件名.hdf','數據集名', 數據大小,'Datatype','數據類型');
1
例如:
h5create('downs_dataset/downsample_A_padded_20160501.hdf','/volumes/raw', size_downs_raw,'Datatype','uint8');
1
5. 往新建的hdf中寫入數據
h5write('文件名.hdf','數據集名', 數據變數);
1
例如:
h5write('downs_dataset/downsample_A_padded_20160501.hdf','/volumes/raw', downs_raw);
1
6. 給數據集寫屬性
h5writeatt('文件名.hdf','數據集名','屬性名', 屬性變數);
1
例如:
h5writeatt('downs_dataset/downsample_A_padded_20160501.hdf','/volumes/raw','resolution', resolution);
1