首頁>Club>
7
回覆列表
  • 1 # 大林子11

    一、save與load函式儲存和載入程式資料

    基本格式為:

    save("FILENAME", "VARIABLES")

    load("FILENAME", "VARIABLES")

    例如,save ("datas.mat","data","x","y","z"); 表示將記憶體變數data, x, y, z 儲存到當前路徑下的datas.mat檔案,其它程式若要載入這幾個變數的資料,只需前面路徑下執行load datas;即可。

    二、txt檔案的匯入匯出

    1. 匯入格式一致的資料

    例1 現有txt檔案如下:

    程式碼:

    x1=load("data1.txt"); %注意設定當前路徑為檔案所在路徑

    x2=load("data2.txt");

    2. 匯入有固定分隔符的資料

    dlmread("FILENAME", "分隔符", "讀取範圍")

    例2讀取txt檔案如下(需要跳過前2行的非資料行,或列數不同):

    程式碼:

    x3=dlmread("data3.txt", ",", 2,0) ; %設定讀取的初始位置:2行0列之後的資料

    x4=dlmread("data4.txt"); %列數不足用0不齊,load函式讀取將報錯

    3. 將矩陣資料寫入指定分隔符的ASCII格式檔案

    dlmwrite(‘檔名’, ‘資料’, ‘分隔符’, ‘起始行’, ‘起始列’)

    dlmwrite(‘檔名’, ‘資料’, "-append")

    "-append"表示將矩陣資料寫到文字末尾,若不指定將覆蓋原文字資料。

    4. 匯入帶表頭的txt或excel資料

    importdata(‘檔名’, ‘分隔符’, ‘n’);

    將資料存入“結構體”,其中,n表示n行表頭;也可以用來讀入圖片:

    x=importdata("tupian.jpg"); image(x);

    例3 讀入如下的txt檔案:

    程式碼:

    x5=importdata("data5.txt"," ",1); %空格分隔, 第1行是表頭

    x5.data %資料

    x5.textdata %表頭變數

    5. 匯入混合格式文字

    textscan(fid, "format", N, "param", value);

    其中,fid為檔案控制代碼;format為讀取格式;N表示用該格式讀取N次資料;"param", value(可選項)指定分隔符和值對。

    注意:使用textscan之前,必須先用fopen開啟要讀入的檔案;函式textread用法類似。

    例4 混合格式資料的txt檔案如下:

    程式碼:

    fid=fopen("data6.txt","r"); %開啟檔案控制代碼

    C=textscan(fid, "%s%s%f32%d8%u%f%f%s%f"); %按格式讀入元胞陣列C

    fclose(fid); %關閉檔案控制代碼

    C{1}

    C{9}

    [names,types,y,answer]=textread("data7.txt","%9c %6s %*f %2d %3s", 1) %讀入固定格式的檔案的第一行,忽略其中的浮點值

    執行結果:C{1} = "Sally" "Joe" "Bill"

    C{9} = 5.1000 + 3.0000i 2.2000 - 0.5000i 3.1000 + 0.1000i

    names = Sally Lev

    types = "el1"

    y = 45

    answer = "Yes"

    三、csv檔案匯入與匯出

    csv檔案是逗號分隔的txt檔案,使用csvread()函式,有3種格式:

    csvread("filename", row, col, range)

    其中,第一個引數指定檔名;

    row和col指定開始讀取位置的行號和列號。注意是從0開始計數,即row=0, col=0表示從檔案中第一個數(1, 1)開始讀;

    range指定讀取的範圍,range=[R1 C1 R2 C2],表示讀取區域的左上角位置為(R1+1, C1+1),讀取區域的右下角位置為(R2-1, C2-1),且要求row, col等於R1, C1.

    注意:csv檔案中的空項,讀到矩陣中時,會初始化為0.

    四、 Excel檔案的匯入與匯出

    1. 匯入Excel資料檔案

    [num, txt, raw] = xlsread("檔名.xls","工作表", "資料範圍")

    例5 現有data1.xlsx檔案(匯入Sheet1的A1至H4資料):

    程式碼:

    [num,txt,raw]=xlsread("data1.xlsx","Sheet1","A1:H4")

    %資料返回num;文字返回txt;不處理直接作為元胞返回raw

    執行結果:

    num =

    1 60101 6010101 NaN 0 63 63

    2 60101 6010102 NaN 0 73 73

    3 60101 6010103 NaN 0 0 0

    txt =

    "序號" "班名" "學號" "姓名" "平時成績" "期末成績" "總成績" "備註"

    "" "" "" "陳亮" "" "" "" ""

    "" "" "" "李旭" "" "" "" ""

    "" "" "" "劉鵬飛" "" "" "" "缺考"

    raw =

    "序號" "班名" "學號" "姓名" "平時成績" "期末成績" "總成績" "備註"

    [ 1] [60101] [6010101] "陳亮" [ 0] [ 63] [ 63] [ NaN]

    [ 2] [60101] [6010102] "李旭" [ 0] [ 73] [ 73] [ NaN]

    [ 3] [60101] [6010103] "劉鵬飛" [ 0] [ 0] [ 0] "缺考"

    2. 將資料匯出到Excel檔案

    status = xlswrite(‘filename.xls’, ‘資料’, ‘工作表’, ‘指定區域’)

    成功返回1,失敗返回0.

    例6 將矩陣或元胞陣列的資料寫成xls檔案

    程式碼:

    A=[12.7 5.02 -98 12; 63.9 0 -0.2 56];

    xlswrite("testdata.xls", A)

    d={"Time", "Temp"; 12 98; 13 99; 14 97};

    s=xlswrite("tempdata.xls", d, "Temperatures", "E1")

    %將資料d寫入檔案tempdata.xls, Temperatures表,E1起始

    例7 讀取資料、處理日期資料,根據日期繪製開盤價變化趨勢圖形。ExpData.xlsx檔案如下(部分):

    程式碼:

    [num,txt]=xlsread("ExpData.xlsx");

    %讀取excel表格中的資料,數值存入num,文字存入txt

    date=txt(2:end,1); %取出日期資料單獨處理

    t=datenum(date); %將日期轉化為數值(方便繪圖使用)

    date1=datestr(t); %將數值轉化為日期

    h=figure %生成空的圖形視窗控制代碼

    set(h,"color","w"); %將圖的背景顏色設為白色

    plot(t,num(:,1)); %以日期為橫座標,開盤價為縱座標,繪製圖形

    %plot(t,num(:,1),"*"); %繪製散點圖

    datetick("x",23); %將x軸標註變成日期格式:mm/dd/yyyy

    xlabel("日期");

    ylabel("開盤價");

    執行結果:

  • 中秋節和大豐收的關聯?
  • 天貓開店入駐要交多少錢?