Outline 區域變數(Local Variables) 全域變數(Global Variables) 基本 I/O 操作

Slides:



Advertisements
Similar presentations
第四週課程 1 (10/10~10/16) 如何建立資料. 原始資料範例 a1~a5 表示選擇題,輸入原始答案,如 A 、B、C、D b1~b5 表示填充題, c1~c5 表示計算題,輸入得分.
Advertisements

第一單元 建立java 程式.
計算機程式語言實習課.
对本书、视频等任何MATLAB问题,作者做到有问必答!
104學年度臺南區免試入學作業國中端說明會 臺南市政府教育局 104學年度臺南區高級中等學校免試入學委員會 日期:104年1月9日(五)
影像處理 基本架構與應用 影像處理的基本架構 影像處理方塊圖 數位影像的特色 彩色影像與灰階影像的表示 相關研究領域與應用例
PPT模板下载: 电子文件归档及管理.
MATLAB 程式設計入門篇 影像顯示與讀寫
第十三章 文件.
File Access 井民全製作.
数字图像处理 刘伯强 山东大学生物医学工程.
聲音檔和 Video 檔的讀與寫 (by Matlab)
第七讲 matlab的程序设计 —— matlab语言称为第四代编程语言,程序简洁、可读性很强而且调试十分容易。
檔案讀寫 方煒 台大生機系.
簡易C++除錯技巧 長庚大學機械系
數位影像處理 2 影像與MATLAB.
范洪源 臺灣師範大學數學系 MATLAB 基本功能介紹 范洪源 臺灣師範大學數學系.
Matlab教學 Speaker:林昱志 Date:2012/10/25.
101北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
Ulead VideoStudio7.0 影片編輯製作軟體 電機三 李威明.
張智星 (Roger Jang) 清大資工系 多媒體檢索實驗室
應用軟體 本節重點: 應用軟體簡介 Word Excel PowerPoint 資料庫Acess.
Java程式概觀.
類別(class) 類別class與物件object.
SQL Stored Procedure SQL 預存程序.
安裝JDK 安裝Eclipse Eclipse 中文化
PowerPoint + Multimedia Files
黃聰明 國立臺灣師範大學數學系 MATLAB 基本功能介紹 黃聰明 國立臺灣師範大學數學系
商用軟體 OFFICE 2003.
第4章 MATLAB文件操作 4.1 文件的打开与关闭 4.2 文件的读写操作 4.3 数据文件定位.
程式設計 博碩文化出版發行.
檔案與磁碟的基本介紹.
第二章 SPSS的使用 2.1 啟動SPSS系統 2.2 結束SPSS系統 2.3 資料分析之相關檔案 2.4 如何使用SPSS軟體.
FPGA計算浮點數的方法 姓名:蔡秉旂.
第10章 檔案與資料夾處理 10-1 C語言的檔案輸入與輸出 10-2 文字檔案的讀寫 10-3 二進位檔案的讀寫
電腦美術設計基本知識.
第5章 文件.
程式設計實習課(四) ----C 函數運用----
研讨课4 文件操作.
MATLAB 程式設計入門篇 初探MATLAB
MATLAB 程序设计语言 任课教师:刘毅 西安电子科技大学 ISN国家重点实验室.
第一單元 建立java 程式.
圖片格式簡介 張啟中.
分支宣告與程式設計 黃聰明 國立臺灣師範大學數學系
MATLAB介绍 Matlab基本命令介绍 Matlab矩阵运算 Matlab控制流 Matlab图像处理工具箱 实习题讲解.
第三章 資料型態與輸出控制 本章學習目標 認識Matlab的基本資料型態 練習資料型態的轉換 學習如何控制Matlab的輸出格式
Origin 8 数据处理与科学作图 Data Analysis & Scientific Graphing
第 5 章 加 入 圖 片.
輸入&輸出 函數 P20~P21.
MATLAB 程式設計入門篇 初探MATLAB
MATLAB 程式設計入門篇 初探MATLAB
撰寫MATLAB基礎財務程式 柯婷瑱.
挑戰C++程式語言 ──第8章 進一步談字元與字串
图像的基本知识 《信息隐藏实验教程》教学幻灯片 二(2).
File Input and Output Chap. 11: 施威銘的書 Chap. 7: K&R.
挑戰C++程式語言 ──第7章 輸入與輸出.
陣列與結構.
Chapter 15 檔案存取 LabVIEW中的檔案存取函數也可將程式中的資料儲存成Excel或Word檔。只要將欲存取的檔案路徑位址透過LabVIEW中的路徑元件告訴檔案存取函數後,LabVIEW便可將資料存成Excel或Word檔;當然也可以將Excel或Word檔的資料讀入LabVIEW的程式中。
北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
資料表示方法 資料儲存單位.
MATLAB 实用教程.
安裝JDK 配置windows win7 環境變數
第七章 文件 7.1 文件的基本概念 7.2 文件类型指针 7.3 文件的打开与关闭 7.4 文件的读/写 7.5 文件的随机读/写
第十三章 彩色影像處理.
開發Java程式語言的工具 JDK.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
第2章 MATLAB的基本语法 2.1 变量及其赋值 2.2 运算符与数学表达式 2.3 控制流 2.4 数据的输入输出及文件的读写
Array(陣列) Anny
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
InputStreamReader Console Scanner
Presentation transcript:

Outline 區域變數(Local Variables) 全域變數(Global Variables) 基本 I/O 操作

區域變數 區域變數(Local Variables) 每一個函數在運算時,均佔用個別的記憶體 此工作空間和 MATLAB 的基本工作空間或是其他函數的工作空間是互相獨立的 不同空間的變數是完全獨立,不會相互影響 不同工作空間的變數,稱為「區域變數」(Local Variables)

全域變數 減少變數的傳遞,可用「全域變數」(Global Variables) 使用全域變數前,需先進行變數宣告 function fun_eval global X % 全域變數宣告 X = X + 2; disp(['The value of X in "fun_eval" is ‘,num2str(X)]);

全域變數 fun_eval.m 沒有輸出和輸入,只宣告全域變數 X,將 X 的值加 2,並印出其值 測試 global X % 在基本工作空間進行全域變數 x 的宣告 X = 3; disp(['The value of X in main program is ‘,num2str(X)]); fun_eval; disp(['The value of X in main program is ‘,num2str(X),’ after fun_eval.’]);

全域變數 盡量少用全域變數 使用全域變數,遵循下列兩原則 全域變數使程式的流程不透明,造成程式除錯或維護的困難 使用前一定要宣告 建議使用全部大寫或較長的變數名稱,以便區別

基本 I/O 操作 有些計算曠日廢時,那麼通常希望能將長時間計算後所得的數據儲存起來,以方便將來進行其他後續的處理。MatLab 儲存變數的基本命令是 save,在不加任何選項(options)時,save 會將變數以二進制格式(binary)儲存至副檔名為 mat 的檔案。 # input, disp

基本 I/O 操作 save : 將 工作空間 的所有變數儲存到 matlab.mat 的二進制檔案。 save filename : 將 工作空間 的所有變 數儲存到以 filename.mat 為名的 二進制檔案。 save filename x y z : 將變數 x、y、z 儲 存到以 filename.mat 為名的二進 制檔案。 # who, whos, dir, ls, delete, !del, type

基本 I/O 操作 以 二進制 的方式儲存變數,檔案是最小的,且在 載入時 速度較快;但是無法用普通的文書軟體(如:記事本)看到檔案內容。若想看到檔案內容,則必須加上 -ascii 選項。 save filename x -ascii save filename x -ascii –double # load

基本 I/O 操作:binary vs. ascii

進階 I/O 操作 類別 支援檔案格式 指令 一般資料 試算表 MAT - MATLAB workspace load, save CSV - comma separated numbers csvread, csvwrite DAT - formatted text Importdata DLM - delimited text dlmread, dlmwrite TAB - Tab separated text 試算表 XLS - Excel worksheet xlsread WK1 - Lotus 123 worksheet wk1read, wk1write

進階 I/O 操作 科學 資料 電影 影像 音訊 類別 支援檔案格式 指令 CDF - Common Data FormatFITS - Flexible cdfread, cdfwrite Image Transport System fitsread HDF - Hierarchical Data Format hdfread, hdfwrite 電影 AVI - Movie aviread 影像 TIFF, PNG, HDF, BMP, JPEG, GIF, PCX, XWD, CUR, ICO, RAS, PBM, PGM, PPM imread, imwrite 音訊 AU, SND - NeXT/Sun sound auread, auwrite WAV - Microsoft Wave sound wavread, wavwrite

延伸 I/O 操作 檔案控制 fopen:開啟檔案 fclose:關閉檔案 二進制資料 fread:用二進制格式從檔案讀取資料 fwrite:用二進制格式將資料寫入檔案

延伸 I/O 操作 具特定格式之資料 fscanf:讀取資料 fprintf:寫入檔案 fgetl:從檔案讀取一列資料, 捨去換行字元 fgets:從檔案讀取一列資料, 保留換行字元

延伸 I/O 操作 檔案位置控制 ferror:檔案輸入/輸出的錯誤狀態 feof:測試是否已到檔案結束位置 fseek:設定檔案定位器 ftell:讀取檔案定位器 frewind:回轉檔案定位器

延伸 I/O 操作 # dos x = 1:10; y = [x; sqrt(x)]; fid = fopen(‘squareRootTable.txt’, ‘w’); fprintf(fid,’Table of square root:\r\n’); fprintf(fid, ‘%2.0f => %10.6f\r\n’, y); fclose(fid); dos(‘start squareRootTable.txt’); % 開啟 squareRootTable.txt # dos

影像顯示與讀寫 影像顯示 影像讀取 影像寫入

影像顯示:索引影像(Indexed Images) 顯示此類型影像的語法如下: image(X) colormap(map) 其中 X 為影像的資料矩陣,map 為色盤矩陣。 色盤矩陣 map 的大小為 K×3,每個橫列由三個元素所組成,分別是 R(紅) 、G(綠)、B(藍) ,每個元素的範圍為 0~1 X 的為 m×n 矩陣,值介於 1~K 間,即當 X(i, j)的值為 p,則像素點 (i, j) 的顏色為 map(p, :) 決定。

影像顯示:索引影像(Indexed Images) load clown.mat % 載入小丑影像資料 image(X); % 顯示影像 colormap(map) % 取用色盤矩陣 To check: min(min(X)), max(max(X)), size(map), size(X) X, map # load mandrill, axis image

影像顯示:索引影像(Indexed Images) newmap = rand(size(map)); image(X); colormap(newmap)

影像讀取 imread imread:將影像檔之畫束資料讀出 X = imread('simulinkteam.jpg');

影像顯示:全彩影像(Truecolor Images) 全彩影像的資料為 m×n×3 矩陣,其中 X (:, :, 1) 代表 紅色的強度 X (:, :, 2) 代表 綠色的強度 X (:, :, 3) 代表 藍色的強度 矩陣的值之範圍可以是下列兩種: 介於 0~1 的 浮點數 或 0~255 的 uint8 image(X)

影像顯示:全彩影像(Truecolor Images) To check: size(X), X, map [m, n] = size(X); figure ('unit', 'pixel', 'position', [10, 200, n, m]); image(X); set(gca, 'position', [0, 0, 1, 1]); set(gca, 'Visible', 'off'); set(gcf, 'PaperPositionMode', 'auto');

影像顯示:強度影像(Intensity Images) 如果色盤矩陣只有 K 個橫列,但是 X 的某些元素值小於 1 或大於 K,則將要使用imagesc 指令把 X 的最小值轉換成 1,最大值轉成 K,其他中間值則依線性關係轉換成介於 1 與 K 的值。 X = peaks; imagesc(X); colormap(gray); To check: min(min(X)), max(max(X))

影像類別及型態 資 料 型 態 影 像 類 別 雙精準(Double) uint8 索引影像 (Indexed Images) 資 料 型 態 影 像 類 別 雙精準(Double) uint8 索引影像 (Indexed Images) 影像矩陣大小:m×n 影像資料範圍:介於 [1, k] 的整數 影像資料範圍:介於 [0, k-1] 的整數 色盤矩陣大小:k×3 色盤資料範圍:介於 [0, 1] 的小數 影像顯示指令:image (註:k 的值不大於 256) 強度影像 (Intensity Images) 影像矩陣大小: m×n 影像資料範圍: 任意浮點 影像資料範圍:介於 [0, 255] 的整數 色盤資料範圍:介於 [0, 1] 的實數 影像顯示指令:imagesc (色盤通常是灰階) 全彩影像 (Truecolor Images) 影像矩陣大小: m×n×3 影像資料範圍:介於 [0,1] 的小數

影像類別及型態 雙精準的全彩影像轉作 uint8 資料型態: RGB8 = uint8(round(RGB64*255)); unit8 (8-bit)轉換成雙精準的全彩影像資料: RGB64 = double(RGB8)/255; 8-bit 影像轉回雙精準影像: Z64 = double(Z8)+1; uint8 資料型態亦可用於全彩影像資料,此時每一像素的原色(R,G 或 B)範圍為 0 至 255 間的整數,而不再是 0 至 1 的小數。

影像寫入 imwrite imwrite:可將資料寫成影像檔 load clown.mat 最後一列敘述將會呼叫 Windows 作業系統下的應用程式來開啟 myClown.jpg 檔案。同 dos('start myClown.jpg') load clown.mat imwrite( X, map, 'myClown.jpg'); !start myClown.jpg

影像資訊 imfinfo imfinfo:可用於傳回影像檔案的各項資訊 info = imfinfo('simulinkteam.jpg')