MATLAB基礎:數據類型

2021-02-20 小白她男朋友的白金商店

MATLAB中的基礎數據類型主要包括數值類型、字符串、結構、單元數組和函數句柄等數據類型。本文主要介紹這些基礎數據類型及其相關的基礎操作。

一、數值類型

數值類型按數值在計算機中存儲與表達的基本方式進行分類,主要有整數、單精度浮點數和雙精度浮點數三類,如表所示。在默認情況下,MATLAB對所有數值按照雙精度浮點數類型進行存儲和操作。

數據格式

示例

說明

Int8,uint8

Int16,uint16

Int32,uint32

Int64,uint64

輸入:

Int16(2^15)

得到::

ans=32767

分別表示有符號和無符號的整數類型:相同數值的整數類型佔用的內存更少

single

single(0.1)

單精度浮點類型

double

6.732、1.562-0.425i

雙精度浮點型,默認數據類型

相對於雙精度浮點數類型數據,整數型與單精度浮點型數據的優點在於節省變量佔用的內存空間:要在滿足精度要求的情況下,可以考慮優先採用。需要時,可以指定系統按照整數型或單精度浮點型對指定的數字或數組進行存儲、運算等操作。

1.      整數類型

MATLAB中提供了4種有符號和4種無符號整數類型;有符號整數類型可表示正整數、負整數和零,而無符號整數類型僅能表示正整數和零。這8種類型的存儲佔用位數、能表示的數值範圍和轉換函數均不同,在此不作贅述。

由於MATLAB中數值默認存儲類型是雙精度浮點型,因此將變量設置成整數類型時,需眼使用轉變函數。如下表:

函數

運算法則

示例

floor

向下取整

floor(1.4)=1

floor(3.5)=3

floor(-2.3)=-3

Ceil

向上取整

ceil(1.4)=2

ceil(3.5)=4

ceil(-2.3)=-2

round

取最接近的整數;如果小數部分是0.5,則向絕對值大的方向取整

round(1.4)=1

round(3.5)=4

round(-2.3)=-2

Fix

向0取整

fix(1.4)=1

fix(3.5)=3

fix(-2.3)=-2

2.      浮點數類型

MATLAB中提供了單精度浮點整數類型和雙精度浮點類型,其存儲位寬、能夠表示的數值範圍、數值精度各方面均不同,見下表

類型

位寬

數位意義

數值範圍

轉換函數

單精度

32

31位表示符號(0正1負)

30~23位表示指數部分

22~0位表示小數部分

-3.40282e+038~-1.17549e-038

Single

雙精度

64

63位表示符號(0正1負)

62~52位表示指數部分

51~0位表示小數部分

-1.79769e+038~-2.22507e-038

2.22507e-038~1.79769e+038

double

MATLAB中的默認數值類型為雙精度浮點類型,但可以通過轉換函數來創建單精度浮點類型。

3.      複數

複數由實部和虛部兩部分構成。在MATLAB中,字符i或j默認作為虛部標誌。創建複數時,可以直接按照複數形式進行輸入或利用complex函數。

關於複數的函數如下表:

函數

說明

函數

說明

complex(a,b)

構造以a為實部,b為虛部的複數

i,j


real(z)

返回複數z的實部

imag(z)

返回複數z的虛部

abs(z)

返回複數z的模

angle(z)

返回複數z的福角

conj(z)

返回複數z的共軛複數



例:複數基本操作實例。

輸入:

輸出:

1.      無窮量(Inf)和非數值量(NaN)

MATLAB中使用Inf和-Inf分別代表正無窮量和負無窮量,NaN表示非數值量。正負無 窮量的產生一般由 於運算溢出產生,非數值量則是由於類似0/0或Inf/Inf類型的非正常運算

MATLAB提供Inf 函數和NaN函數來創建指定數值類型的無窮量和非數值量,生成結果默認為雙精度浮點類型中還有一種特殊的指數類型的數據叫做非數,通常表示運算得到的數值結果超出了運算範圍。非數的實部用NaN表示,虛部用InF表示。

例:無窮量及非數值量的產生和性質。

輸入:

輸出結果如下:

 

一、字符與字符串

MATLAB將文本作為特徵字符串或簡單地當作字符串。這些字符串能夠顯示在屏幕上, 也可以用來構成一些命令。字符串是存儲在行向量中的文本,這行向量中的每一個元素代表

實際上,元素中存放的是字符的內部代碼,即ASCII碼。但在屏幕上顯示字符變量的值時,顯示出來的是文本,而不是ASCII編碼:這是因為在顯示前已經對ASCII編碼進行了輸

字符串一般是ASCII值的數值數組,它作為字符串表達式進行顯示。字符串可以通過其 下標對其中的任一元素進行訪問, 也可以通過矩陣下標索引進行訪問,但是矩陣的每行字符數必須相同。

例:字符串屬性示例。

輸入:

輸出:

二、函數句柄

在MATLAB中,可以實現對函數的間接調用;這歸功於函數句柄提供了一種間接調用函數的方法。

創建函數句柄需要使用到操作符@,對MATLAB庫函數中提供的各種M文件中的函數和使用者自主編寫的程序中的內部函數,也都可以創建函數句柄,進而可以通過函數句柄來實現對這些函數的間接調用。

創建函數句柄的一般句法格式為:

Function_Handle=@Function_Filename;

其中,

Function_Filename是函數所對應的M文件的名稱或MATLAB內部函數的名稱;

@是句柄創建操作符;

Function_Handle變量保存了這一句柄,並在後續的運算中作為數據流進行傳遞。

例:函數句柄的創建與調用。

輸入:

輸出:

MATLAB庫函數提供了大量處理函數句柄的操作函數,將函數句柄的功能與其他數據類型聯繫起來;這擴展了函數句柄的應用。函數句柄的簡單操作函數見下表:

函數名稱

函數功能

function_handle或@

間接調用函數

func2str

將函數句柄轉換為函數名稱字符串

str2func

將字符串代表的函數轉換為函數句柄

function(funhandle)

返回一個存儲函數名稱、函數類型及函數M文件位置的結構體

 

相關焦點

  • 過冷水帶您走進matlab數據轉換新世界
    數據轉換對於經常使用matlab的夥伴來說是很基礎且實用的知識點,but! 相互之間轉換關係不太容易釐清,免不了書到用時求谷哥度娘。
  • Matlab基礎知識概述
    (3)構造了Notebook ,MathWorks 公司瞄準應用範圍最廣的Word ,運用DDE 和OLE,實現了MATLAB與Word 的無縫連接,從而為專業科技工作者創造了融科學計算、圖形可視、文字處理於一體的高水準環境。
  • Matlab--TXT數據的讀取
  • [優化] 《MATLAB高效編程技巧與應用:25個案例分析》源程序+數據
    《MATLAB高效編程技巧與應用:25個案例分析》源程序+數據 所屬分類:計算機 > 計算機輔助設計與工程計算 > Matlab 內容簡介本書是作者八年matlab使用經驗的總結,精心設計的所有案例均來自於國內各大matlab技術論壇網友的切身需求,其中不少案例涉及的內容和求解方法在國內現已出版的matlab書籍中鮮有介紹
  • 深入淺出MATLAB數據處理之文件讀寫
    參數要和其它函數命令結合才能看出效果,暫時先不不進行演示。過冷水之前的工作中就有判斷文件數據儲存數據順序類型。所以該參數具有較強的實用性。    存儲順序 :存儲順序是指存儲在計算機內存中的地址順序。例如,一個四字節整形數據0x0A0B0C0D,高字節數據(0x0A)存儲在高地址,低字節數據(0x0D)存儲在低地址。 高地址、低地址的概念不能在拓展了,入局太深出不來。閱讀順序 閱讀順序就是人們習慣的看文字的順序。還用「存儲順序」中的4位元組整形數據來說明,0x0A0B0C0D為16進位表示形式,閱讀順序為從左到右(高字節到低字節)。
  • matlab vs R
    而 matlab 的服務則是建立在用戶付費的基礎之上。你沒有付費,又哪來的享受到官方提供的維護服務。關於入門周期,matlab 要短於 R; 入門難度上, matlab 要比 R 簡單;新手遇到的問題的多少,matlab 用戶小於 R 用戶。
  • 一文帶你輕鬆搞定matlab各種數據讀寫
    日常在MATLAB編程愛好者討論群中經常有人求助讀取文件的方法,本期過冷水就用最簡潔話語給出圖片、excel、文檔、音頻等類型的文件的讀取和儲存,廢話不多直接看代碼。1、讀取圖片本圖來源於matlab官方twitter圖片的名字是:matlab.jpg;儲存的絕對路徑是:C:\Users\wayne\Desktop讀取&儲存代碼:2、存儲&讀取excel中的數據
  • 強大的matlab數據科學擬合庫cftool——直接導入數據進行擬合
    對於使用過matlab做數據處理的人來說,擬合是將平面上一系列的點,用一條光滑的曲線連接起來。因為這條曲線有無數種可能,從而有各種擬合方法。擬合的曲線一般可以用函數表示,根據這個函數的不同有不同的擬合名字。
  • 數據處理:Matlab之向量和數組的基本操作
    點擊上方藍字關注 無距書鄉 在《Matlab:學習我不需要編程基礎!》
  • Matlab入門到放棄(一)、matlab基礎知識
    6、浮點型數據浮點型數據分為單精度和和和雙精度兩種類型,單精度型實數在內存中佔用4個字節,雙精度型實數在內存中佔用8個字節,所以雙精度型的實數的數據精度更高。(數值數據默認是雙精度型)可使用single函數將其他類型的數據轉換為單精度型。使用double函數將其他類型的數據轉換為雙精度型。
  • 大數據開發基礎:Java基礎數據類型
    在Java基礎入門學習階段,Java基礎數據類型無疑是基礎當中的重點,掌握基礎數據類型,對於後續去理解和掌握更深入的理論,是有緊密的關聯性的。今天的大數據開發基礎分享,我們就來講講,Java八種基礎數據類型。
  • 【Matlab】繪圖
    反正我們材料剛開始做實驗的時候,同時還在學matlab,對軟體還不熟練,做起來磕磕絆絆的。不過還好第一節實驗課,導師給我們講matlab的一些有關於數據分析的用法(假設)我們看到很多人覺得matlab非常適合數據分析,實際上也確實很多人在用matlab進行數據分析。那我們自己使用matlab進行數據分析並繪圖是個什麼情況呢?
  • Matlab基礎(三)
    其中fsurf指令可以快速繪製符號表達式的三維曲面圖,你只要指定函數表達式,調用該函數就可以很快繪製曲面圖,不需要指定任何數據信息。在matlab中求極限的指令為limit(f,var,a),即求的值。例如,我們求下面這個常見的極限syms xf=sin(x)/x;limit(f,x,0)得到結果
  • 數據挖掘Matlab零基礎自學學習路線圖
    matlab簡介:MATLAB是美國MathWorks公司出品的商業數學軟體,用於算法開發、數據可視化、數據分析以及數值計算的高級技術計算語言和交互式環境,主要包括MATLAB和Simulink兩大部分。
  • matlab和c語言的區別
    MATLAB可以進行矩陣運算、繪製函數和數據、實現算法、創建用戶界面、連接其他程式語言的程序等,主要應用於工程計算、控制設計、信號處理與通訊、圖像處理、信號檢測、金融建模設計與分析等領域。C語言基本特性:1、高級語言:它是把高級語言的基本結構和語句與低級語言的實用性結合起來的工作單元2、結構式語言:結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便於使用、維護以及調試。
  • Matlab數據存取(三):注意事項及其他相關問題
    請在matlab中保持當前路徑在該數據文件對應的目錄下進行存取,否則,存取時請給出該數據文件的具體路徑。2. 存取時,請給出該數據文件的全稱(包括後綴名,讀取mat文件時可省略)3. load data.txt和A=load(『data.txt』)的區別請參閱精華貼:[原創]寫給學習matlab 的新手們4.
  • matlab複雜數據類型(一)
    1 元胞數組元胞數組是一種包含名為元胞的索引數據容器的數據類型,其中的每個元胞都可以包含任意類型的數據。元胞數組通常包含文本字符串列表、文本和數字的組合或不同大小的數值數組。通過將索引括在圓括號 () 中可以引用元胞集。使用大括號 {} 進行索引來訪問元胞的內容。
  • python中調用MATLAB程序
    (file_y);         因為導入的mat格式的數據,在python裡面是字典數據類型。因此要先操作字典數據,查看數據格式。        方法1 : 一起輸出每個鍵以及對應的數據值,注意每個鍵都是雙_連用。 因為python導入的mat格式的數據是字典數據格式,需要獲得每個鍵以及它的屬性值。
  • 關於Matlab的那些事
    1.前言我接觸Matlab的時間比較長了,最開始是在大學裡面的數學實驗課上了解了一些,學了些基礎的命令,後來參加過一次數學建模,又自學了點
  • MATLAB的cell數組
    5 Cell數組元胞數組(cell)是MATLAB的一種特殊數據類型。可以將元胞數組看做一種無所不包的通用矩陣,或者叫做廣義矩陣。組成元胞數組的元素可以是任何一種數據類型的常數或者常量,每一個元素也可以具有不同的尺寸和內存佔用空間,每一個元素的內容也可以完全不同。和一般的數值矩陣一樣,元胞數組的內存空間也是動態分配的。