Matlab 保存有序的非相邻大数据

Matlab 保存有序的非相邻大数据,matlab,reference,linked-list,bigdata,Matlab,Reference,Linked List,Bigdata,我有个问题。我认为答案之一是“不要使用matlab”,但我更愿意找到其他答案 我有未知数量的数据集。每个集合由一个数字id(正整数)指定。我没有选择id。我想按id名称对这些数据集进行排序,但是id之间不跟随。 比如说 [3 9 17 35 69 101] 当我从数据流中获得一个新的数据集时,我可以得到一个id,它可以接受任何值,例如19。当然,我想把它插入“17”和“35”之间 一个肮脏的解决方案是创建一个数据集单元。 如果N是到目前为止我的数据集总数,Ind是一个数据集的索引。如果得到一个

我有个问题。我认为答案之一是“不要使用matlab”,但我更愿意找到其他答案

我有未知数量的数据集。每个集合由一个数字id(正整数)指定。我没有选择id。我想按id名称对这些数据集进行排序,但是id之间不跟随。 比如说

[3 9 17 35 69 101]
当我从数据流中获得一个新的数据集时,我可以得到一个id,它可以接受任何值,例如19。当然,我想把它插入“17”和“35”之间

一个肮脏的解决方案是创建一个数据集单元。 如果N是到目前为止我的数据集总数,Ind是一个数据集的索引。如果得到一个(n+1)第1个数据集,我想插入一个ID,它正好落在中间,我需要用更大的索引来移动所有的数据集。你会认为这不是很有效

然后我想起了我所学的一门罕见的编程课(我是一名物理学家)。它正在处理链接列表。这里的解决方案很简单,我只需要将前一个数据集的指针更改为新的数据集,并添加指向下一个数据集的指针:效率更高

它没有内置的matlab函数,但有一个类示例称为dlnode。通过在线搜索更多关于这个主题的内容,我的第一个热门话题是: 基本上,这个人展示了制作一个包含510个元素的双重列表,然后清除这两个列表将产生一系列警告。 我自己尝试过,通过清除这两个变量,我得到了一大堆警告。我还尝试保存变量(右键单击>另存为):在链表中,它可以保存510个变量集,但会使Matlab崩溃10000个变量(注意:这里保存的每个变量集的数据只有1个数值,在我的例子中,每个变量集有1000个字符——我希望至少有10000个变量集)。所以链表似乎不是Matlab的解决方案

你已经面对这个问题了吗?你能想出一个更有效的解决办法吗

谢谢你的帮助


编辑:我想我需要更加精确。 我有这样的数据集:

id: 89 %positive integer as id
data: 'xxxxxx'%several lines of strings
我有一个指定了id的数据流。我无法控制这个id,我只知道它只能是正整数。 输入的id可以更小、更大,甚至等于我之前已经获得的id

如果我得到相同的id,数据就不同了。我只想将附加到它的字符串行(比如“yyyyyy”)添加到以前保存的数据中

id: 89 %positive integer as id
data: 'xxxxxxyyyyyy'%several lines of strings
但这并不难

困难的是,我想通过增加ID在某种数据结构中对它们进行排序,以便以后更容易找到我的数据。但我仍然希望我的代码能够高效地向整个数据集中添加新的数据集。单元的预分配是可能的,但无法解决获取id小于目前获得的较大id的数据集的问题(这需要更改所有这些数据集的索引)

我正在考虑的一个解决方案是附加数据,而不关心我得到的新id是大还是小…

Matlab use not?=)

我目前正在帮助物理学家从Matlab过渡到Python。在python中,我会使用字典来跟踪您的数据集,所以我快速搜索了“Matlab中的字典”,找到了适合您的字典


编辑:问题的链接我原来的链接是重复的:

Hello,本主题给出的解决方案之一是使用containers.Map。我已经想过用它了。但当我看到它时,我认为它也是一个基于句柄的classdef(比如dlnode),所以我得到了一点平方。。。也许我不应该,因为这似乎是一个内置的方法。你好,我刚刚尝试用地图容器加载“吨”数据:这绝对不是瓶颈。它看起来确实是一个哈希表。哈希表绝对是答案,现在我记得我也有一个关于它的讲座。很久以前。。。谢谢:)