我试着用MATLAB写这个程序,在不使用循环的情况下,我需要一个有3行和未知列数的数组。
我们获取这个数组,并找到每一列的方差。如果方差大于阈值,那么我们将输出数组中相应的列设置为1。
这是我目前所拥有的:
% vec_acc_total is my array with 3 rows
var = var(vec_acc_total, 0, 1);
walking_segments_no_loops = zeros(size(var));
walking_segemnts_no_loops(var >= THRESHOLD) = 1
字符串
然而,这是错误的,希望任何帮助,将不胜感激。我知道这是错误的,因为它被返回后,它是通过一个验证程序(提供给我),将确认或否认。
我在MATLAB中使用VARIANCE函数也有潜在的问题。我需要找到每列的方差。
我尝试过以下方法:
walking_segments_no_loops = var >= THRESHOLD
型
也没有返回正确的值
1条答案
按热度按时间kcrjzv8t1#
当您运行
字符串
您正在使用您的变量
var
删除内置函数var
。所有后续对var()
(函数)的调用都将出错,直到您从工作区中清除var
(变量)。因此,运行
clear
来清理并防止任何阴影,然后选择一个新的变量名,例如。型
v
是一个1xN数组,其中var_acc_total
是一个3xN矩阵,这直观地告诉我们已经计算了每列的方差。您可以直接检查这是否超过阈值,而无需初始化数组:
型
这将输出一个与
v
大小相同的逻辑数组,当大于或等于阈值时为true (1)
,否则为false (0)
。如果您希望此值为数值而不是逻辑,则可以通过使用例如double()
Package 来转换它。请注意,在你的问题中,你是这样说的(强调我的):
如果方差大于阈值,那么我们将输出数组中相应的列设置为1。
也许你想使用
>
而不是>=
来检查严格不等式。