當前位置:首頁 » 格式模板 » matlab數據格式

matlab數據格式

發布時間: 2021-03-15 17:31:25

A. MATLAB編程的數據類型是怎樣的

考慮到存貯和計算的消耗,程序中將數據表示成不同的類型,如整型用於表示整數、字元型用於表示字元、雙精度浮點型用於表示小數等。

MATLAB為了方便,編寫程序時可以不事先聲明變數的數據類型(當然,這是一個不好的習慣,但對於小程序,過分關注數據類型實在沒有必要),而且本身的數據類型也比較少:用於表示數值的數據類型有「整型(int)」和「雙精度型(double)」中的數據類型。對於數值型變數,如果不事先聲明,MATLAB默認數據類型為double型。整型數據類型按其所佔位元組數分多種,最值得注意的是uint8,這是用來表示圖像像素灰度值的一種數據類型。

B. matlab程序中怎麼定義數據的類型

語句
double s
的含義是將獲取字元s的asic碼
所以你的程序執行後,應該會「莫名其妙」的出現一行
ans =
115

這個就是s的asic碼

你的程序應該
1。刪除double s
2。s=s+a1(i,j);改為s=s+double(a1(i,j));

C. matlab 數據類型

Matlab中有15種基本數據類型,主要是整型、浮點、邏輯、字元、日期和時間、結構數組、單元格數組以及函數句柄等。Matlab主要數據類型的結構圖如下所失:

1.整型
整型:通過intmax(class)和intmin(class) 函數返回該類整型的最大值和最小值,例如intmax(『int8』)=127
2.浮點

浮點數:REALMAX('double')和REALMAX('single')分別返回雙精度浮點和單精度浮點的最大值,REALMIN('double')和REALMIN ('single')分別返回雙精度浮點和單精度浮點的最小值。

3.邏輯

Logical:下例是邏輯索引在矩陣操作中的應用,將5*5矩陣中大於0.5的元素設定為0:

A = rand(5);
A(A>0.5)=0

4.字元

Matlab中的輸入字元需使用單引號。字元串存儲為字元數組,每個元素佔用一個ASCII字元。如日期字元:DateString=』9/16/2001』 實際上是一個1行9列向量。構成矩陣或向量的行字元串長度必須相同。可以使用char函數構建字元數組,使用strcat函數連接字元。

例如,命令 name = ['abc' ; 'abcd'] 將觸發錯誤警告,因為兩個字元串的長度不等,此時可以通過空字元湊齊如:name = ['abc ' ; 'abcd'],更簡單的辦法是使用char函數:char(『abc』,』abcd』),Matlab自動填充空字元以使長度相等,因此字元串矩陣的列緯總是等於最長字元串的字元數,例如size(char(『abc』,』abcd』))返回結果[2,4],即字元串』abc』實際存在的是』abc 』,此時如需提取矩陣中的某一字元元素,需要使用deblank函數移除空格如name =char(『abc』,』abcd』); deblank(name(1,:))。此外,Matlab同時提供一種更靈活的單元格數組方法,使用函數cellstr可以將字元串數組轉換為單元格數組:

data= char(『abc』,』abcd』)
length(data(1,:)) ->? 4
cdata=cellstr(data)
length(cdata{1}) ->?3

常用的字元操作函數

blanks(n) 返回n個空字元
deblank(s) 移除字元串尾部包含的空字元
eval(string) 將字元串作為命令執行
findstr(s1,s2) 搜索字元串
ischar(s) 判斷是否字元串
isletter(s) 判斷是否字母
lower(s) 轉換小寫
upper(s) 轉換大寫
strcmp(s1,s2) 比較字元串是否相同
strncmp(s1,s2,n) 比較字元串中的前n個字元是否相同
strrep(s1,s2,s3) 將s1中的字元s2替換為s3

5.日期和時間

Matlab提供三種日期格式:日期字元串如』1996-10-02』,日期序列數如729300(0000年1月1日為1)以及日期向量如 1996 10 2 0 0 0,依次為年月日時分秒。

常用的日期操作函數

datestr(d,f) 將日期數字轉換為字元串
datenum(str,f) 將字元串轉換為日期數字
datevec(str) 日期字元串轉換向量
weekday(d) 計算星期數
eomday(yr,mth) 計算指定月份最後一天
calendar(str) 返回日歷矩陣
clock 當前日期和時間的日期向量
date 當前日期字元串
now 當前日期和時間的序列數

6.結構

結構是包含已命名「數據容器」或欄位的數組。結構中的欄位可以包含任何數據,例如:

構建結構數組:賦值方法

下面的賦值命令產生一個名為patient的結構數組,該數組包含三個欄位:

patient.name = 'John Doe';
patient.billing = 127.00;
patient.test = [79 75 73; 180 178 177.5; 220 210 205];

在命令區內輸入patient可以查看結構信息:

name: 'John Doe'
billing: 127
test: [3x3 double]

繼續賦值可擴展該結構數組:

patient(2).name = 'Ann Lane';
patient(2).billing = 28.50;
patient(2).test = [68 70 68; 118 118 119; 172 170 169];

賦值後結構數組變為[1 2]。

構建結構數組:struct函數

函數基本形式為:strArray = struct('field1',val1,'field2',val2, ...)

例如:

weather(1) = struct('temp', 72,'rainfall', 0.0); weather(2) = struct('temp', 71,'rainfall', 0.1);
weather = repmat(struct('temp', 72, 'rainfall', 0.0), 1, 3);
weather = struct('temp', {68, 80, 72}, 'rainfall', {0.2, 0.4, 0.0});

訪問結構數據

以下都是合法的結構數組訪問命令:

mypatients = patient(1:2) 獲取子結構數據
mypatients(1) 訪問結構數據
patient(2).name 訪問結構數據中的特定欄位
patient(3).test(2,2) 訪問結構數據中的特定欄位(該欄位為數組)
bills = [patient.billing] 訪問多個結構
tests = {patient(1:2).test} 提取結構數據轉換成單元格數組

使用結構欄位的動態名稱

通過structName.(expression)可以賦予結構欄位名稱並訪問數據。例如欄位名為expression、結構名為structName,訪問其中第7行1至25列數據可以使用命令:structName.(expression)(7,1:25)。

例如,存在一個學生每周成績數據結構數組,其數據通過以下方式建立:

testscores.wang.week(1:25) = ...
[95 89 76 82 79 92 94 92 89 81 75 93 ...
85 84 83 86 85 90 82 82 84 79 96 88 98];

testscores.chen.week(1:25) = ...
[87 80 91 84 99 87 93 87 97 87 82 89 ...
86 82 90 98 75 79 92 84 90 93 84 78 81];

即結構名為testscores,欄位使用每個學生的名稱命名,分別為wang和chen,每個學生下麵包含名為week的成績結構數組。

現計算給定結構名稱、學生名稱和起止周數的平均分數。

在命令窗口中輸入 edit avgscore.m,輸入以下代碼後保存文件:

function avg = avgscore(struct,student, first, last)
avg = sum(struct.(student).week(first:last))/(last - first + 1);

在命名窗口中輸入:avgscore(testscores, 'chen', 7, 22) 計算學生陳從第7周到第22周的平均分數。

添加和刪除結構欄位

命令[struct](index).(field)可添加或修改欄位。如patient(2).ssn = '000-00-0000' 在結構patient中添加一個名為ssn的欄位。

刪除欄位使用rmfield函數,如patient2 = rmfield(patient, 'name') 刪除name欄位並產生新的結構。

單元格數組

單元格數組提供了不同類型數據的存儲機制,可以儲存任意類型和任意緯度的數組。

訪問單元格數組的規則和其他數組相同,區別在於需要使用花括弧{}訪問,例如A{2,5}訪問單元格數組A中的第2行第5列單元格。

構建單元格數組:賦值方法

使用花括弧標識可直接創建單元格數組,如:

A(1,1) = {[1 4 3; 0 5 8; 7 2 9]};
A(1,2) = {'abcd'};
A(2,1) = {3+7i};
A(2,2) = {-pi:pi/10:pi};

上述命令創建2*2的單元格數組A。繼續添加單元格元素直接使用賦值如A(2,3)={5}即可,注意需使用花括弧標識。簡化的方法是結合使用花括弧(單元格數組)和方括弧()創建,如C = {[1 2], [3 4]; [5 6], [7 8]};

構建單元格數組:函數方法

Cell函數。如:
B = cell(2, 3);
B(1,3) = {1:3};

訪問數據

通過索引可直接訪問單元格數組中的數據元素,例如:

N{1,1} = [1 2; 4 5];
N{1,2} = 'Name';
N{2,1} = 2-4i;
N{2,2} = 7;

c = N{1,2}
d = N{1,1}(2,2)

函數句柄

函數句柄是用於間接調用一個函數的Matlab值或數據類型。在調用其它函數時可以傳遞函數句柄,也可在數據結構中保存函數句柄備用。通過命令形式 fhandle = @functionname 可以創建函數句柄,例如 trigFun=@sin,或匿名函數sqr = @(x) x.^2;。

使用句柄調用函數的形式是 fhandle(arg1, arg2, ..., argn) 或 fhandle()(無參數)。如:
trigFun(1)。例:

function x = plotFHandle(fhandle, data)
plot(data, fhandle(data))

plotFHandle(@sin, -pi:0.01:pi)

D. matlab有幾種文件類型

m文件.m
model文件.mdl
figure文件.fig
data文件.mat
stateflow文件.cdr
report generator文件.rpt

E. matlab程序如何輸入特定格式數據

可以將存有數據的文件載入到MATLAB中,例如,所有的數據存在.xls或者.txt文件中,那麼可以將他們直接載入到MATLAB中
Data=xlsread('data.xls');
Data=load('data.txt');
這樣,所有數據將以矩陣Data存在MATLAB中了,程序直接調用矩陣Data就可以了

出現這個錯誤是因為你的data.txt不在你MATLAB的當前工作目錄下,你可以將data.txt拖到MATLAB的工作目錄下,或者在當前工作目錄下新建一個。
總之是讓MATLAB能找得到data.txt

F. matlab數據輸出格式

這個是回車鍵的解釋引起的。
在記事本中輸入回車,實際上你輸入了兩個字元,一個回車,一個換行。
而如果在Linux下,你輸入回車,實際上只輸入了一個ASCII碼為10的回車,而沒有換行。
當然你如果用word或別的軟體打開的話,這些軟體可以認一個回車的東西。
要解決這個問題。
你如果在matlab中使用的是sprintf的話,
你將\n改成\r\n就可以了。

G. MATLAB中變數的基本數據類型是什麼

Matlab中有15種基本數據類型,主要是整型、浮點、邏輯、字元、日期和時間、結構數組、單元格數組以及函數句柄等。Matlab主要數據類型的結構圖如下所失:

1.整型

整型:通過intmax(class)和intmin(class)函數返回該類整型的最大值和最小值,例如intmax(『int8』)=127

2.浮點

浮點數:REALMAX('double')和REALMAX('single')分別返回雙精度浮點和單精度浮點的最大值,REALMIN('double')和REALMIN('single')分別返回雙精度浮點和單精度浮點的最小值。

3.邏輯

Logical:下例是邏輯索引在矩陣操作中的應用,將5*5矩陣中大於0.5的元素設定為0:

A=rand(5);

A(A>0.5)=0

4.字元

Matlab中的輸入字元需使用單引號。字元串存儲為字元數組,每個元素佔用一個ASCII字元。如日期字元:DateString=』9/16/2001』實際上是一個1行9列向量。構成矩陣或向量的行字元串長度必須相同。可以使用char函數構建字元數組,使用strcat函數連接字元。

例如,命令name=['abc';'abcd']將觸發錯誤警告,因為兩個字元串的長度不等,此時可以通過空字元湊齊如:name=['abc';'abcd'],更簡單的辦法是使用char函數:char(『abc』,』abcd』),Matlab自動填充空字元以使長度相等,因此字元串矩陣的列緯總是等於最長字元串的字元數,例如size(char(『abc』,』abcd』))返回結果[2,4],即字元串』abc』實際存在的是』abc』,此時如需提取矩陣中的某一字元元素,需要使用deblank函數移除空格如name=char(『abc』,』abcd』);deblank(name(1,:))。此外,Matlab同時提供一種更靈活的單元格數組方法,使用函數cellstr可以將字元串數組轉換為單元格數組:

data=char(『abc』,』abcd』)

length(data(1,:))->?4

cdata=cellstr(data)

length(cdata{1})->?3

常用的字元操作函數

blanks(n)返回n個空字元

deblank(s)移除字元串尾部包含的空字元

eval(string)將字元串作為命令執行

findstr(s1,s2)搜索字元串

ischar(s)判斷是否字元串

isletter(s)判斷是否字母

lower(s)轉換小寫

upper(s)轉換大寫

strcmp(s1,s2)比較字元串是否相同

strncmp(s1,s2,n)比較字元串中的前n個字元是否相同

strrep(s1,s2,s3)將s1中的字元s2替換為s3

5.日期和時間

Matlab提供三種日期格式:日期字元串如』1996-10-02』,日期序列數如729300(0000年1月1日為1)以及日期向量如1996102000,依次為年月日時分秒。

常用的日期操作函數

datestr(d,f)將日期數字轉換為字元串

datenum(str,f)將字元串轉換為日期數字

datevec(str)日期字元串轉換向量

weekday(d)計算星期數

eomday(yr,mth)計算指定月份最後一天

calendar(str)返回日歷矩陣

clock當前日期和時間的日期向量

date當前日期字元串

now當前日期和時間的序列數

6.結構

結構是包含已命名「數據容器」或欄位的數組。結構中的欄位可以包含任何數據,例如:

構建結構數組:賦值方法

下面的賦值命令產生一個名為patient的結構數組,該數組包含三個欄位:

patient.name='JohnDoe';

patient.billing=127.00;

patient.test=[797573;180178177.5;220210205];

在命令區內輸入patient可以查看結構信息:

name:'JohnDoe'

billing:127

test:[3x3double]

繼續賦值可擴展該結構數組:

patient(2).name='AnnLane';

patient(2).billing=28.50;

patient(2).test=[687068;118118119;172170169];

賦值後結構數組變為[12]。

構建結構數組:struct函數

函數基本形式為:strArray=struct('field1',val1,'field2',val2,...)

例如:

weather(1)=struct('temp',72,'rainfall',0.0);weather(2)=struct('temp',71,'rainfall',0.1);

weather=repmat(struct('temp',72,'rainfall',0.0),1,3);

weather=struct('temp',{68,80,72},'rainfall',{0.2,0.4,0.0});

訪問結構數據

以下都是合法的結構數組訪問命令:

mypatients=patient(1:2)獲取子結構數據

mypatients(1)訪問結構數據

patient(2).name訪問結構數據中的特定欄位

patient(3).test(2,2)訪問結構數據中的特定欄位(該欄位為數組)

bills=[patient.billing]訪問多個結構

tests={patient(1:2).test}提取結構數據轉換成單元格數組

使用結構欄位的動態名稱

通過structName.(expression)可以賦予結構欄位名稱並訪問數據。例如欄位名為expression、結構名為structName,訪問其中第7行1至25列數據可以使用命令:structName.(expression)(7,1:25)。

例如,存在一個學生每周成績數據結構數組,其數據通過以下方式建立:

testscores.wang.week(1:25)=...

[958976827992949289817593...

85848386859082828479968898];

testscores.chen.week(1:25)=...

[878091849987938797878289...

86829098757992849093847881];

即結構名為testscores,欄位使用每個學生的名稱命名,分別為wang和chen,每個學生下麵包含名為week的成績結構數組。

現計算給定結構名稱、學生名稱和起止周數的平均分數。

在命令窗口中輸入editavgscore.m,輸入以下代碼後保存文件:

functionavg=avgscore(struct,student,first,last)

avg=sum(struct.(student).week(first:last))/(last-first+1);

在命名窗口中輸入:avgscore(testscores,'chen',7,22)計算學生陳從第7周到第22周的平均分數。

添加和刪除結構欄位

命令[struct](index).(field)可添加或修改欄位。如patient(2).ssn='000-00-0000'在結構patient中添加一個名為ssn的欄位。

刪除欄位使用rmfield函數,如patient2=rmfield(patient,'name')刪除name欄位並產生新的結構。

單元格數組

單元格數組提供了不同類型數據的存儲機制,可以儲存任意類型和任意緯度的數組。

訪問單元格數組的規則和其他數組相同,區別在於需要使用花括弧{}訪問,例如A{2,5}訪問單元格數組A中的第2行第5列單元格。

構建單元格數組:賦值方法

使用花括弧標識可直接創建單元格數組,如:

A(1,1)={[143;058;729]};

A(1,2)={'abcd'};

A(2,1)={3+7i};

A(2,2)={-pi:pi/10:pi};

上述命令創建2*2的單元格數組A。繼續添加單元格元素直接使用賦值如A(2,3)={5}即可,注意需使用花括弧標識。簡化的方法是結合使用花括弧(單元格數組)和方括弧()創建,如C={[12],[34];[56],[78]};

構建單元格數組:函數方法

Cell函數。如:

B=cell(2,3);

B(1,3)={1:3};

訪問數據

通過索引可直接訪問單元格數組中的數據元素,例如:

N{1,1}=[12;45];

N{1,2}='Name';

N{2,1}=2-4i;

N{2,2}=7;

c=N{1,2}

d=N{1,1}(2,2)

函數句柄

函數句柄是用於間接調用一個函數的Matlab值或數據類型。在調用其它函數時可以傳遞函數句柄,也可在數據結構中保存函數句柄備用。通過命令形式fhandle=@functionname可以創建函數句柄,例如trigFun=@sin,或匿名函數sqr=@(x)x.^2;。

使用句柄調用函數的形式是fhandle(arg1,arg2,...,argn)或fhandle()(無參數)。如:

trigFun(1)。例:

functionx=plotFHandle(fhandle,data)

plot(data,fhandle(data))

plotFHandle(@sin,-pi:0.01:pi)

H. matlab 數據顯示格式

如果以短整式顯示(默認),則為如下:
>> x = 1215.678978234756;

>> format;x

可以看到,數據顯示時以科學計數法顯示為: x = 1.2157e+03
說明:在數據計算與顯示輸出時,常需要控制數據顯示格式,matlab默認的數據顯示格式是短整式(short),當數據為實數時,以小數點後4位的長度顯示;當數據為整數時則以整數顯示。數據顯示格式以format指令控制。

如果要以長格式(long)顯示,那麼可以輸入如下指令:
>> format long;x

回車後輸出如下: x = 1.215678978234756e+03

如果需要短緊縮格式,也就是我們習慣的書寫格式,可採用如下指令:
>> format short g;x

輸出數據如下: x = 1215.7

當然,也可以採用有理格式顯示(近似分數)
指令:
>> format rational;x

輸出: x = 34039/28

需要知道的是,數據顯示格式,並不會影響數據的實際數值大小,不會影響計算的精度,在計算過程中matlab是以約16位有效數字的。

I. matlab中數組如何輸出數據格式為分數

matlab中format option可以設置結果的顯示形式為option指定的樣式,輸出數據格式為分數則可以使用:

formatrat

示例如下:

>> A = [2,0.2,0.3,0.123466]

A = 2.0000 0.2000 0.3000 0.1235

>> format rat

>> A

A = 2 1/5 3/10 332/2689

熱點內容
塗鴉論文 發布:2021-03-31 13:04:48 瀏覽:698
手機資料庫應用 發布:2021-03-31 13:04:28 瀏覽:353
版面217 發布:2021-03-31 13:04:18 瀏覽:587
知網不查的資源 發布:2021-03-31 13:03:43 瀏覽:713
基金贖回參考 發布:2021-03-31 13:02:08 瀏覽:489
懸疑故事範文 發布:2021-03-31 13:02:07 瀏覽:87
做簡單的自我介紹範文 發布:2021-03-31 13:01:48 瀏覽:537
戰略地圖參考 發布:2021-03-31 13:01:09 瀏覽:463
收支模板 發布:2021-03-31 13:00:43 瀏覽:17
電氣學術會議 發布:2021-03-31 13:00:32 瀏覽:731