Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
矩阵中信号的Matlab条件和_Matlab_Matrix - Fatal编程技术网

矩阵中信号的Matlab条件和

矩阵中信号的Matlab条件和,matlab,matrix,Matlab,Matrix,我有一个带有正/负信号和零(无信号)的向量: 我想创建一个新的向量,它是X的累积和,条件是累积和不能超过3/-3,因此输出变成: Y=[0,0,1,2,3,3,3,3,2,1,1,1,1,2,3,3,3,3,2,2]; 我可以通过循环或arrayfun来解决这个问题,但是我的矩阵很大,而且是多维的,而且这两种解决方案都不能很好地扩展 我的问题可以通过矢量化解决方案来解决吗?谢谢。奥利·查尔斯沃思在评论中给出了答案。我复制他的评论作为答案,这样这些问题就不会出现在未回答的问题中 基本上,没有矢量

我有一个带有正/负信号和零(无信号)的向量:

我想创建一个新的向量,它是
X
的累积和,条件是累积和不能超过3/-3,因此输出变成:

Y=[0,0,1,2,3,3,3,3,2,1,1,1,1,2,3,3,3,3,2,2];
我可以通过循环或
arrayfun
来解决这个问题,但是我的矩阵很大,而且是多维的,而且这两种解决方案都不能很好地扩展


我的问题可以通过矢量化解决方案来解决吗?谢谢。

奥利·查尔斯沃思在评论中给出了答案。我复制他的评论作为答案,这样这些问题就不会出现在未回答的问题中


基本上,没有矢量化的解决方案,因为每个结果元素都依赖于前一个奥利·查尔斯沃思2011年9月13日17:01


基本上,没有矢量化的解决方案,因为每个结果元素都依赖于前一个。@Oli是的,我想你是对的。我只是想检查一下,有时候当我被困在这里的时候,我会非常惊讶。谢谢。你对问题的描述可以很容易地矢量化,但是从你的例子来看,你似乎想要一些稍微不同的东西。温度=总和(y);Y=最大值(最小值(3,温度),-3)。如果这样做不行,并且您确实需要更高的速度,那么这是一个非常适合mex文件实现的问题。@MatlabSorter Ehhhm,您的建议实际上不会产生我想要的向量作为最终结果,因为
cumsum
独立于最小/最大条件工作。如果您有任何其他潜在的解决方案,请提供它们作为可能的答案。编译代码可能是一条路,但我仍然处于试错/分析模式,现在不想走这条路。Thanks@OliCharlesworth:您应该在答案中添加您的注释,以将此问题标记为solvedHey,根据以前的输入,只有7种可能的选项,因此理论上,如果在7台以上的计算机/CPU上运行,in可以缩放。]:)每个实例计算所有可能的解决方案,然后返回请求的解决方案。一旦所有实例计算出所有解,每个人都可以立即知道哪个解是正确的。一般来说,它可以像非限制版本一样进行矢量化。
Y=[0,0,1,2,3,3,3,3,2,1,1,1,1,2,3,3,3,3,2,2];