matlab中iniFile函數的使用

iniFile 從標準ini(ASCII)創建、讀取或寫入數據文件。這樣的文件被分成若干部分([節名]),小節(用{小節名}括起來),和鍵(鍵=值)。空行和第一個非空的字符;(註釋行)被忽略。

iniFile(fileName,‘write’,keys,<‘style’>)
寫入以字符串的元胞數組給定的鍵值,可選樣式變量:“tabbed”寫入節,以標籤樣式顯示子章節和鍵,以提高
可讀性文件。“普通”樣式是默認樣式。這隻會影響將被寫入/重寫的鍵。
iniFile(fileName,‘deletekeys’,keys)
刪除鍵值和他們的值,如果存在的話。
[readsett,result] = iniFile(fileName,‘read’,keys)
讀取鍵的值,其中readsett是鍵的字符串和/或數值組成元胞數組。如果沒有鍵值被找到的話,未找到,則返回默認值(如果在鍵參數的第5列給了的話)。結果是字符串-每個鍵讀取一個;如果正常,則爲空;錯誤/警告
,則返回字符串;在這兩種情況下,在readsett{i}中均返回空白的字符串。
[keys,sections,subsections] = iniFile(fName,‘readall’)
讀整個文件,返回所有的節,子節和找到的鍵值。

關於作爲輸入參數給出的元胞數組的說明:
字符串的元胞數組;3列、4列或5列。每行的列數相同。列包括:
“section”:節名稱字符串(如果空的視爲根目錄)
“subsection”:分段名稱字符串(如果空的視爲根目錄)
“key”:要寫入/讀取的字段的名稱(給定爲字符串)。
“valeue”:在“寫入”操作時要寫入ini文件的(可選)字符串或數值(標量或矩陣),或在讀取操作時轉換爲CHAR字符:“i”表示整數,“d”表示雙精度,“s”或不提供時默認爲string類型)。
默認值:當key沒有找到或找到空值(“讀取”操作)時(可選)字符串或數值(標量或矩陣)。如果未給出默認值,並且key未找到,返回空值。必須採用值,例如,如果值爲“i”,則必須爲以整數等形式給出。

例子:
假設我們需要一個新的ini文件test1.ini,它有4個字段,包括5x5矩陣(見下文)。我們可以將5個字段寫入ini文件使用:


%       x = rand(5);    % matrix data 
%       inifile('test1.ini','new'); 
%       writeKeys = {'measurement','person','name','Primoz Cermelj';... 
%                   'measurement','protocol','id',1;... 
%                   'application','','description.m1','some...';... 
%                   'application','','description.m2','some...';... 
%                   'data','','x',x}; 
%       inifile('test1.ini','write',writeKeys,'plain')

wriKeys結構如下:
‘measurement’ ‘person’ ‘name’ ‘Primoz Cermelj’
‘measurement’ ‘protocol’ ‘id’ 1
‘application’ [] ‘description.m1’ ‘some…’
‘application’ [] ‘description.m2’ ‘some…’
‘data’ [] ‘x’ 5x5 double
是一個5*4的元胞矩陣,生成的test1.ini如下:
[application]
description.m1 = some…
description.m2 = some…
[data]
x = 0.75774 0.706046 0.823458 0.438744 0.489764;0.743132 0.0318328 0.694829 0.381558 0.445586;0.392227 0.276923 0.317099 0.765517 0.646313;0.655478 0.0461714 0.950222 0.7952 0.709365;0.171187 0.0971318 0.0344461 0.186873 0.754687
[measurement]
{person}
name = Primoz Cermelj
{protocol}
id = 1

 readKeys = {'measurement','person','name','','John Doe';... 
                  'measurement','protocol','id','i',0;... 
                  'application','','description.m1','','none';... 
                   'application','','description.m2','','none';... 
                   'data','','x','d',zeros(5)}; 
       readSett = iniFile('test1.ini','read',readKeys); 

這個程序的運行結果是:
‘Primoz Cermelj’
1
‘some…’
‘some…’
5x5 double

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章