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_Vectorization_Cell Array - Fatal编程技术网

Matlab 如何向循环中的向量添加元素

Matlab 如何向循环中的向量添加元素,matlab,matrix,vectorization,cell-array,Matlab,Matrix,Vectorization,Cell Array,假设我有一个单元格数组raweeg,其中每个单元格都是一个矩阵,第一列中有时间点,第二列中有一些标记。当标记不等于-1时,我想创建一个向量来存储时间点。我找到了一种非优雅(且不起作用)的方法来创建大小为1x1的零向量,然后在循环中附加以下值 注意:总共有96个非“-1”值和相应的时间点 startpoints = zeros(1,1); for i = length(raweeg{1,1}(:,1)) if raweeg{1,1}(i,2) ~= -1 startpoints(en

假设我有一个单元格数组
raweeg
,其中每个单元格都是一个矩阵,第一列中有时间点,第二列中有一些标记。当标记不等于-1时,我想创建一个向量来存储时间点。我找到了一种非优雅(且不起作用)的方法来创建大小为1x1的零向量,然后在循环中附加以下值

注意:总共有96个非“-1”值和相应的时间点

startpoints = zeros(1,1);

for i = length(raweeg{1,1}(:,1))
   if raweeg{1,1}(i,2) ~= -1
   startpoints(end+1,1) = raweeg{1,1}(i,1); 
   end
end

谢谢

对于给定的
raweeg
单元格,像这样对其进行矢量化:

startpoints = raweeg{1,1}(raweeg{1,1}(:,2) ~= -1, 1);
这就是所谓的

只需确保标记不是通过浮点计算生成的,否则比较可能会经常失败


另外,代码中的问题是
for
循环语句,它应该是:

对于i=1:length(raweeg{1,1}(:,1))

或者更好,
对于i=1:size(raweeg{1,1},1)


没有“
1:
”部分,它只有一个迭代,即最后一行。

答案是否正确?错误被识别为缺少
1:
,并给出了矢量化解决方案。如果有效,请接受。谢谢!:)非常感谢。我是这个系统的新手,它有点让人困惑。