如何在matlab';s数据集?
我有一个46x46数据集,需要更新单行中的多个值 例如:如何在matlab';s数据集?,matlab,dataset,Matlab,Dataset,我有一个46x46数据集,需要更新单行中的多个值 例如: data = A B C D 0 0 0 0 0 0 0 0 0 0 0 0 我想让它像 A B C D 0 0 0 0 0 1 0 1 0 0 0 0 我可以这样写吗: data(2, ['B', 'D']) = [1, 1]; 谢谢大家! 是: data(2, [2 4]) = mat2dataset([1 1]); 或者简单地说: data(2, [2 4]) = mat2dataset(1)
data =
A B C D
0 0 0 0
0 0 0 0
0 0 0 0
我想让它像
A B C D
0 0 0 0
0 1 0 1
0 0 0 0
我可以这样写吗:
data(2, ['B', 'D']) = [1, 1];
谢谢大家! 是:
data(2, [2 4]) = mat2dataset([1 1]);
或者简单地说:
data(2, [2 4]) = mat2dataset(1);
注意:作为补充,您应该避免使用数据集。根据
文档:“数据集数据类型可能在将来被删除
要处理异构数据,请使用Matlab表格数据
改为键入。”
如果您有一个(建议替换该类型),可以使用'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.B(2) = 1;
data.D(2) = 1;
以上任何一项都给出了答案
data =
A B C D
_ _ _ _
0 0 0 0
0 1 0 1
0 0 0 0
他/她没有桌子,但有数据集。@Crazyrat Hm.True。我从未使用过
数据集
类型,并认为它是一个通用名称:-)无论如何,由于数据集
已经过时,建议使用表
来代替,我想我会留下答案,因为它可能会有用。非常感谢!)我还没弄明白
data =
A B C D
_ _ _ _
0 0 0 0
0 1 0 1
0 0 0 0