看板 MATLAB 關於我們 聯絡資訊
※ 引述《kazaf1982 (kazaf)》之銘言: : 在看別人寫的程式碼 但是有些不解 : 所以想請問板上的前輩 : 第一個問題 : clear all;clc; : addpath('./code'); : para.img_path = './img_data/single_data/'; : para.result_path = './img_output/'; : 在上面的程式碼中,不是很了解'para.'的這個用法 : para是一個特定的用法嗎? 這要看你的 para 是什麼,不過就兩種可能。 1. structure mantlab doc: > A structure array is a data type that groups related data > using data containers called fields. Each field can contain > any type of data. Access data in a field using dot notation > of the form structName.fieldName. 簡單說就是結構變數含有多個「欄位」(field),以「.」存取。各欄位可以存放任意 型態的資料,如陣列等等。 定義語法: s = struct(field1,value1,...,fieldN,valueN) 例: > s = struct('a', 1, 'b', [1:3]) > s.a ans = 1 > s.b ans = 1 2 3 matlab 可以直接用 s.a = 1 來指定,不一定要用 struct 函數。 2. Object 物件為包含自有方法(函數)與屬性(變數)的「東西」。 所以你會在程式中看到這種表達方式: sppmg.name sppmg.eat(food_a) 前者為 sppmg 物件的屬性,用起來就和普通變數一樣,可用 = 指定 (前提是這屬性被定義成可改) 後者為 eat 方法(函數),用起來和一般函數一樣。「()」在 matlab 中可略, 所以在一些背景執行程式中會看到 xxxx.start 這種 (timer 好像可以用 t.start ,但文件是寫 start(t) ) 詳細的定義方式見 class 說明。也可看: https://www.mathworks.com/help/matlab/matlab_oop/create-a-simple-class.html : 第二個問題 : [imvector, ~, DisVector]=GetImVector(img, Scale, Scale,0); : 在輸入這邊的'~'這個符號代表什麼意思? : 我只知道這是一個NOT的符號 : 但不知道用在output的時候代表什麼? : 謝謝 同推文所說:為了省略。 以 max 函數為例: mantlab doc: M = max(A) [M,I] = max(___) M -> Maximum values I -> Index to maximum values 所以如果你只需要 I 而不用 M,為了讓程式使用 [M,I] 這種輸出格式就必須用 ~ 佔位 [~,I] = max(A) (註:函數中可用 nargout 取得輸出參數個數,可依此改變程式運作。) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.160.221 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1509804566.A.33D.html
kazaf1982: 感恩! 11/10 12:53