计算向量中连续 1 和 0 的数量

2024-04-27

在 Matlab 中我有一个如下所示的向量:

0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 1

我现在要做的是统计这个向量中1的个数。连续的 1 算作 1。此外,我还想计算 1 之间 0 的平均值和中位数。所以对于这个例子:

1s: 5

0 中位数:3.5

平均 0:3

我用蛮力方法解决了这个问题,即研究循环中的每个元素并检查前一个和下一个元素。但我确信必须有一个更快的解决方案。任何想法?


给定向量中的数据v,

v = [ 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 1 ]; % data

计算如下:

w = [ 1 v 1 ]; % auxiliary vector
runs_zeros = find(diff(w)==1)-find(diff(w)==-1); % lenghts of runs of 0's

% Desired results:
number_ones = length(runs_zeros)-1+v(1)+v(end);
% For average and median, don't count first run if v(1) is 0,
% or last run if v(end) is 0:
average_runs_zeros = mean(runs_zeros(2-v(1):end-1+v(end))); 
median_runs_zeros = median(runs_zeros(2-v(1):end-1+v(end)));

这比 @TryHard 的解决方案更快,因为它不需要转换为字符串

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算向量中连续 1 和 0 的数量 的相关文章

  • 当 MATLAB 发生错误时如何继续循环?

    我正在使用函数将一些 dat 文件转换为 mat 文件 我在循环内调用此函数来转换多个文件 在某些情况下 我的 dat 文件已损坏 函数无法转换并发生错误 从而停止循环 现在我的问题是 是否有任何命令 当错误发生时 它应该跳过循环中的当前
  • 在 MATLAB 中一次为元胞数组分配不同的值

    我需要有关在 MATLAB 中创建元胞数组的帮助 其中每个元胞都是不同大小的数组 例如 假设我有这个简单的数组和值 A 5 3 8 7 0 4 1 B 10 元胞数组C必须创建为 C 10 20 30 40 50 10 20 30 10 2
  • 朴素分类器 matlab

    在 matlab 中测试朴素分类器时 即使我在相同的样本数据上进行训练和测试 我也会得到不同的结果 我想知道我的代码是否正确 是否有人可以帮助解释这是为什么 dimensionality reduction columns 6 U S V
  • 在 MATLAB 中高效地形成动态窗口

    有人可以帮助我提供一种有效的方法 或者帮助我执行提供的代码 以尽可能少的步骤获得相同的结果 我将感激你 我有一个原始数组 A 1 1 1 4 3 4 5 4 4 3 3 1 0 0 2 6 2 6 3 6 6 2 7 4 8 7 2 2 2
  • 优化数组压缩

    假设我有一个数组k 1 2 0 0 5 4 0 我可以按如下方式计算掩码m k gt 0 1 1 0 0 1 1 0 仅使用掩码 m 和以下操作 左移 右移 And Or 加 减 乘 我可以将 k 压缩为以下形式 1 2 5 4 以下是我目
  • MATLAB 链表

    有哪些可能的方法来实现链表MATLAB http en wikipedia org wiki MATLAB 注意 我问这个问题是为了教学价值 而不是实用价值 我意识到 如果您实际上在 MATLAB 中滚动自己的链表 那么您可能做错了什么 然
  • 使用 varargin (...) 时如何显示不同的函数用法?

    当您输入 Matlab 函数名称并打开大括号时 例如sum 在命令窗口中 将打开一个工具提示 显示此函数的所有可能用法 当我编写自己的接受函数时varargin 工具提示仅显示一个选项 而不是varargin puts e g myfunc
  • MATLAB 在 MATLAB 7.10.0 学生版中似乎找不到 csaps()

    我有一些代码使用csaps Matlab的三次平滑样条拟合函数 http www mathworks com help toolbox curvefit csaps html我想将其提供给使用 MATLAB 7 10 0 R2010a 的学
  • Matlab 的快速 JSON 解析器

    您知道 Matlab 中有一个非常快速的 JSON 解析器吗 目前我正在使用JSONlab http www mathworks com matlabcentral fileexchange 33381 jsonlab a toolbox
  • 图像增强 - 从书写中清除给定图像

    我需要清理这张照片 删除 清理我 的字样并使其变亮 作为图像处理课程作业的一部分 我可能会使用 matlab 函数 ginput 来查找图像中的特定点 当然 在脚本中您应该对所需的坐标进行硬编码 您可以使用 conv2 fft2 ifft2
  • 在 matlab/octave 中将数据集分成两个子集 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 将数据集分为两个子集 例如 训练 和 测试 其中 训练集包含 80 的数据 测试集包含剩余的 20 分裂的意思是生成一个长度等于的逻辑索引
  • 使用 python 在网络上部署 matlab 应用程序

    您好 我想使用 python 在网络上部署 matlab 应用程序 有没有办法做到这一点 我已按照数学工作网站上的文档将我的应用程序转换为 jar 文件 java 类 有人能指出我前进的正确方向吗 事实上 您的 Matlab 代码打包为 J
  • 使用 java 执行 Matlab 函数

    我正在编写一个应用程序 它使用 matlab 进行图像处理 然后使用 Java 接口显示结果 由于某些原因 我必须同时使用 Java 和 Matlab 如何在java中使用matlab函数 如何创建和访问界面 MATLAB控制 http m
  • opencv中矩阵的超快中值(与matlab一样快)

    我正在 openCV 中编写一些代码 想要找到一个非常大的矩阵数组 单通道灰度 浮点数 的中值 我尝试了几种方法 例如对数组进行排序 使用 std sort 和选择中间条目 但与 matlab 中的中值函数相比 它非常慢 准确地说 在 ma
  • 类方法的自定义代码完成?

    在 MATLAB 中 可以定义代码建议和完成 如标题为 的文档页面中所述 自定义代码建议和完成 https www mathworks com help matlab matlab prog customize code suggestio
  • 是否有一个函数可以检查矩阵是否对角占优(行占优)

    矩阵是对角占优 http en wikipedia org wiki Diagonally dominant matrix 按行 如果对角线处的值在绝对意义上大于该行中所有其他绝对值的总和 对于列也是如此 只是相反 matlab中有没有函数
  • 傅里叶变换定理 matlab

    我目前正在尝试理解二维傅里叶位移定理 根据我到目前为止所了解到的情况 图像空间中的平移会导致相位差异 但不会导致频率空间中的幅度差异 我试图用一个小例子来演示这一点 但它只适用于行的移位 而不适用于列的移位 这是一个小演示 我只在这里显示幅
  • python 正弦和余弦精度

    如何提高Python正弦和余弦精度 例如 我想使用以下代码 只需计算随机复向量 x 的 y cos acos x import numpy as np N 100000 x np zeros N 1j np zeros N for k in
  • 在 Matlab 中显示有理数

    我有两个整数 m n 它们一起形成 m n 形式的有理数 现在我只想以这种理性的形式在 Matlab 中显示它们 我可以通过这样做来做到这一点 char sym m n 所以 如果 例如m 1 n 2 Matlab将显示1 2 然而 如果m
  • 在 MATLAB 中创建共享库

    一位研究人员在 MATLAB 中创建了一个小型仿真 我们希望其他人也能使用它 我的计划是进行模拟 清理一些东西并将其变成一组函数 然后我打算将其编译成C库并使用SWIG https en wikipedia org wiki SWIG创建一

随机推荐

  • (python) matplotlib pyplot show() .. 是否阻塞?

    我遇到了这个麻烦show 一遍又一遍 我确信我做错了什么 但不确定做我想做的事情的 正确 方法 我认为 我想要的是某种方法来阻塞主线程 直到 GUI 线程中发生事件 这样的事情第一次起作用 from matplotlib import py
  • Couchbase 网络错误 16,node.js 中套接字断言失败

    我有以下 node js 脚本 几天前运行良好 但现在出现此错误 syd HP Notebook Desktop node db js connected to database Error Network error code 16 no
  • Android:onSensorChanged 的​​替代方案?当手机背面放在桌子上时(没有移动时)没有加速度计数据

    所以我使用这段代码来获取加速度计数据 当我在 DDMS 模式下检查打印语句正在打印的内容时 我注意到当手机不动时没有打印任何内容 IE 它在桌上 我认为原因是当手机不移动时不会调用 onSensorChanged 然后当手机再次开始移动时调
  • Java - TreeSet 和 hashCode()

    我有一个简单的问题TreeSet http docs oracle com javase 8 docs api java util TreeSet html收藏品和hashCode http docs oracle com javase 8
  • Zsh 颜色部分制表符补全

    是否可以在Zsh中对部分完成结果的已完成部分进行着色 Fish 默认执行此操作 至少在 Gentoo 中 如下图所示 全尺寸图像 https i stack imgur com KaL1g png https i stack imgur c
  • OpenCV Python - 如何实现RANSAC来检测直线?

    我正在尝试检测包含道路的图像上的线条 使用高斯平滑和 Canny 边缘检测 我在尝试实现 RANSAC 时遇到了困难 我基本上不知道如何去做 我可以获得一个粗略的想法或一个带有实现 RANSAC 的随机图像 foo png 的工作代码吗 N
  • Java 加载资源的首选方式

    我想知道在Java中加载资源的最佳方法 this getClass getResource or getResourceAsStream Thread currentThread getContextClassLoader getResou
  • 父元素的递归串联

    我有一个看起来像这样的表 ID Name Parent 1 A NULL 2 B NULL 3 C 1 4 D 1 5 E 3 6 F 5 我想要一个视图返回这个 ID Name ParentNames 1 A 2 B 3 C A 4 D
  • 使用正则表达式从字符串中提取日期和时间

    我正在开发一个正则表达式 它接受所有可能的日期和时间格式 以从句子中提取它们 这是我的正则表达式 31 0 13578 1 02 Jan Mar May Jul Aug Oct Dec 1 1 30 0 1 3 9 1 0 2 Jan Ma
  • 在 SQL Azure 数据库中创建链接服务器[重复]

    这个问题在这里已经有答案了 我们使用两个用于跨数据库查询的数据库 一个名为 azureDB1 另一个名为 azureDB2 这些数据库驻留在我的 Azure 云 SQL Server 上 我们的场景是从 azureDB1 调用驻留在 azu
  • Java 语法

    这段代码 List
  • 使用 'with' 时 Laravel ownsTo 返回 null

    我刚刚开始使用 Laravel 所以请原谅任何菜鸟 我有一个User and Order模型中 一个用户有多个订单 Inside User model public function orders this gt hasMany Order
  • 通过 requests 模块发送 JSON 并使用 Bottle.py 和cherrypy 捕获它

    我有一个服务器需要能够接受 JSON 然后处理它 然后发回 JSON 我的服务器端的代码正在使用Bottle py 与cherrypy 所关注的路线如下 route tagTweets method POST def tagTweets r
  • System.Windows.Application.GetResourceStream 返回 null

    如果我调试一个以 Catalog xaml 作为内容的 WPF 应用程序 我无法获取它的资源流 GetResourceStream 返回 null var uri new Uri Assembly component Catalog xam
  • 如何从 Flask 调用另一个 Web 服务 api

    我在 Flask 服务器中使用重定向来调用另一个 Web 服务 api e g app route hello def hello return redirect http google com 网址逻辑上会更改为 google com 但
  • 如何在 psql 中使用数组包含值子句进行选择

    我有专栏arr这是类型array 我需要获取行 在哪里arr列包含值s 这个查询 SELECT FROM table WHERE arr gt ARRAY s 给出错误 错误 运算符不存在 字符变化 gt 文本 为什么它不起作用 附注我知道
  • 只响应第一个 WM_KEYDOWN 通知?

    Win32 应用程序如何仅响应第一个 WM KEYDOWN 通知 MSDN 文档声称第 30 位 指定先前的按键状态 如果在发送消息之前按键处于按下状态 则该值为 1 如果按键处于按下状态 则该值为 0 但在我的 WndProc 中 第 3
  • 在 shell 中将 ANSI 转换为 UTF-8

    我正在制作一个解析器 1 csv 到 3 csv 脚本 但遇到问题 我是法国人 所以用我的语言我有这样的字母 一位客户向我发送了一个 csv 文件 Linux 将其识别为 unknown 8bit 我猜是 ansi 在我的脚本中 我正在编写
  • 格式化文本文件,解析完成后如何更新文件?

    如何打开文件 对文件执行一些正则表达式 然后保存文件 我知道我可以打开一个文件 逐行读取 但是如何更新文件的实际内容然后保存文件 无论文件大小如何 以下方法都可以工作 并且如果操作在完成之前失败 也不会损坏原始文件 string input
  • 计算向量中连续 1 和 0 的数量

    在 Matlab 中我有一个如下所示的向量 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 1 我现在要做的是统计这个向量中1的个数 连续的 1 算作 1 此外 我还想计算 1 之间 0 的平均值和中