gpt4 book ai didi

dataset - 数据集中的标题 (Matlab)

转载 作者:太空宇宙 更新时间:2023-11-03 19:56:09 26 4
gpt4 key购买 nike

我找不到关于 dataset() 的任何好的文档,所以这就是为什么我想问你们,我会保持简短的问题:

我可以在数据集中设置标题(列标题),而无需将数据输入到数据集中吗?我猜不是,所以问题的第二部分是:
我可以制作一个单行数据集,我在其中命名标题,数据为空,然后再覆盖它吗?

让我向您展示我正在尝试但没有奏效的方法:

dmsdb = dataset({ 'John','Name'},{'Amsterdam','City'},{10,'number' });  
produces:
Name City number
John Amsterdam 10 --> Headers are good!

问题是,当我要向数据集添加更多数据时,它希望所有字符串的长度相同。所以我使用 cellstr():

dmsdb(1,1:3) = dataset({ cellstr('John'),'Name'},{cellstr('Amsterdam'),'City'},{10,'number' });  
Produces:
Var1 Var2 Var3
'John' 'Amsterdam' 10

我的标题去哪儿了?我该如何解决这个问题,是什么原因造成的?

最佳答案

你可以设置一个空数据集

data = dataset({[], 'Name'}, {[], 'City'}, {[], 'number'});

data = dataset([], [], [], 'VarNames', {'Name', 'City', 'number'});

两者都会给你:

>> data

data =

[empty 0-by-3 dataset]

但是我们可以看到,列名是通过勾选设置的

>> get(data, 'VarNames')                                             

ans =

'Name' 'City' 'number'

现在我们可以向数据集添加行:

>> data = [data; dataset({'John'}, {'Amsterdam'}, 10, 'VarNames', get(data, 'VarNames'))]

data =

Name City number
'John' 'Amsterdam' 10

您已经有了基本的想法,但只需要将字符串数据放入单元格中。这个替换你的第一行的作品:

>> dmsdb = dataset({ {'John'},'Name'},{{'Amsterdam'},'City'},{10,'number' }); 

dmsdb =

Name City number
'John' 'Amsterdam' 10

dataset() 的内置帮助实际上非常擅长列出这些和其他构建数据集的方法的详细信息。另请查看带有示例的在线文档:

http://www.mathworks.com/help/toolbox/stats/dataset.html

其中一个 Mathworks 博客也有一篇不错的帖子:

http://blogs.mathworks.com/loren/2009/05/20/from-struct-to-dataset/

祝你好运!

关于dataset - 数据集中的标题 (Matlab),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7837802/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com