2015-02-07 39 views

回答

0

是:

data(2, [2 4]) = mat2dataset([1 1]); 

或者乾脆:

data(2, [2 4]) = mat2dataset(1); 

注意:作爲一個方面說明,你應該避免使用的數據集。根據 文檔:「數據集數據類型可能會在將來的 版本中刪除。要使用異構數據,請使用Matlab表格數據 類型。」

+0

非常感謝!) 還沒算出來)) – EdZhavoronkov 2015-02-07 20:48:16

0

如果你有table(這是建議的更換dataset型的),你可以參考使用'VariableNames'屬性列的名稱:

先建表:定義列名並填寫所有列用零:

data = table(zeros(3,1), zeros(3,1), zeros(3,1), zeros(3,1), .... 
     'VariableNames', {'A','B','C','D'}); 

這給

data = 
    A B C D 
    _ _ _ _ 
    0 0 0 0 
    0 0 0 0 
    0 0 0 0 

然後,改變條目在你的問題的條目,就可以使用

data(2, ismember(data.Properties.VariableNames, {'B' 'D'})) = {1, 1}; 

data(2, ismember(data.Properties.VariableNames, {'B' 'D'})) = deal({1}); 

或者更直接

data.B(2) = 1; 
data.D(2) = 1; 

上述任何一種給

data = 
    A B C D 
    _ _ _ _ 
    0 0 0 0 
    0 1 0 1 
    0 0 0 0 
+0

他/她沒有_Table_,而是_dataset_。 – Ratbert 2015-02-07 20:11:08

+0

@Crazyrat Hm。真正。我從來沒有使用'dataset'類型,並認爲它是一個通用的名稱:-)無論如何,因爲'dataset'已經過時了,建議使用'table'代替,我想我會留下答案,因爲它可能會有用 – 2015-02-07 20:13:00

+0

@LM好的,當然。這對_Table_來說是一個很好的解決方案。 – Ratbert 2015-02-07 20:23:15