【发布时间】:2017-04-29 23:56:14
【问题描述】:
我有一个类似这样的脚本:
i = 1;
while i <10000
a = input('enter a ');
c(i) = a;
i = i + 1;
end
无论用户输入值需要多长时间或循环中发生的任何其他事情,我都试图大约每秒将“a”保存在“c”中。例如,假设用户为“a”输入 3 等待 2 秒,然后为“a”输入 6,然后等待 3 秒,然后输入 12,然后暂时没有输入,“c”将如下所示:
c = 3 3 6 6 6 12 12 12 12 12...
现在,'c' 看起来像这样:
c = 3 6 12...
这不是我想要的。有什么建议么?它不必是一秒钟,但我想要连续输出。
【问题讨论】:
-
我现在不在电脑前,所以我还不能展示一个实现,但是你可以运行一个后台线程,每秒将
a的当前值捕获到一个数组中。只要后台线程还活着,主线程就会一遍又一遍地获取用户输入。如果用户输入的值太快,其中一些可能会从结果中删除。 -
这听起来像是一个可行的解决方案。如果您有机会可以发布示例,我将不胜感激。
-
当然。澄清一下,根据您对已删除答案的评论,
input是检测器读数的替代品?这很重要,因为那时我可能会考虑交换线程(即在主线程中进行计算)。从后台线程读取用户输入可能有问题,但可能没有读取传感器。 -
同时,这是我在整理一些细节时发现的一篇文章:undocumentedmatlab.com/blog/…。原来你需要多处理工具箱或 Java。哪一个最适合您?我只是非常熟悉 java 方法,但我可以根据文档非常有效地组合一个 mpt 答案。
-
@madphysicist 输入是传感器数据和大约 50 行方程和语句的替代。我有并行处理工具箱,所以我认为这会更好