2013-10-03 26 views
1

字段名比方說我有一個表calld臨時從看起來像如何在MATLAB工作

date column a column b column c 
. 
. 
. 


names    = fieldnames(temp); 
names    = names(2:end); 
cells    = struct2cell(temp);  
orgTS    = cell2mat(cells(2:end)'); 
effectiveDate  = temp.date 

誰能解釋一下上面做的SQL Server 回來了?這是很難測試,因爲SQL服務器已關閉,我不能真正運行這個

回答

1

MATLAB struct■找領域,通常有一個.訪問的名字,這就是fieldnames讓你:

fieldnames獲取結構字段名稱或對象屬性。

NAMES = fieldnames(S)返回包含 結構S中字段的名稱的字符串單元數組。

如上所述,您的names變量將是一個字符串的單元格。您的代碼獲取字段2:end,因此看起來像{'column a','column b','column c'}。符合cell2mat(cells(2:end)');的行正在獲取這些標題下的數據。

1

您可能有興趣構建虛假的數據庫,直到服務器啓動。以下是一些代碼及其相關結果。

您可以通過在工作區瀏覽器中雙擊每個變量或在編輯器窗口中鍵入變量的名稱來評估每個變量的內容,方法是將鼠標指向每個變量(您有來設置偏好,編輯,顯示,使在編輯模式下數據提示)

%fake database 
field1 = 'date'; value1 = datestr(repmat(now, 5,1)); 
field2 = 'cola'; value2 = rand(5,1); 
field3 = 'colb'; value3 = zeros(5,1); 
field4 = 'colc'; value4 = ones(5,1); 

%create a temp structure 
temp = struct(field1,value1,field2,value2,field3,value3,field4,value4); 

以下代碼

names    = fieldnames(temp); 
names    = names(2:end); 

給出:

名稱=

'cola' 
'colb' 
'colc' 

cells    = struct2cell(temp);  
orgTS    = cell2mat(cells(2:end)'); 

給出

orgTS =

0.7866   0 1.0000 
0.5043   0 1.0000 
0.4850   0 1.0000 
0.8388   0 1.0000 
0.0859   0 1.0000 

effectiveDate  = temp.date 

effectiveDate = 

04-Oct-2013 00:24:38 
04-Oct-2013 00:24:38 
04-Oct-2013 00:24:38 
04-Oct-2013 00:24:38 
04-Oct-2013 00:24:38 
+0

感謝了很多,什麼是結構的點到單元格,然後墊上 –

+0

那些用來連接幾個領域:不點名(2月底)。 – marsei