MATLAB 中的高效多类加权多数投票实现

2023-12-14

这几天我想知道如何在matlab中有效地实现m位专家的加权多数投票。这是我想要的一个例子。假设我们有 3 位专家,其权重向量

w=[7 2 6]

假设他们对选项 A/B/C/D 进行了 n 次投票,因此我们得到以下 n x m 投票矩阵,其中列是每个专家的投票。

A B B
C A A
D B A
A A C

现在我想找到每一行的加权多数票。我们通过添加投票给每个选项的专家的权重并选择最大权重来计算它。例如,在第一行中,选项A的累积权重为7(专家1的投票),B的累积权重为8(专家2和3的投票),因此最终投票为B。所以我们得到以下累积权重矩阵和最终投票:

A B C D
- - - -
7 8 0 0 -> B
8 0 7 0 -> A
6 2 0 7 -> D
9 0 6 0 -> A

现在,使用 for 循环遍历行数 n 的实现或多或少是简单的。我现在正在寻找解决方案,它不需要这个可能很长的循环,而是使用向量算术。我有一些想法,但每个想法都遇到了一些问题,所以现在不再提及。如果有人曾经遇到过类似的情况,请分享您的解决方案。

Thanks.


w=[7 2 6];

votes = ['A' 'B' 'B'
         'C' 'A' 'A'
         'D' 'B' 'A'
         'A' 'A' 'C'];

options = ['A', 'B', 'C', 'D']';
%'//Make a cube of the options that is number of options by m by n
OPTIONS = repmat(options, [1, size(w, 2), size(votes, 1)]);

%//Compare the votes (streched to make surface) against a uniforma surface of each option
B = bsxfun(@eq, permute(votes, [3 2 1]) ,OPTIONS);

%//Find a weighted sum
W = squeeze(sum(bsxfun(@times, repmat(w, size(options, 1), 1), B), 2))'

%'//Find the options with the highest weighted sum
[xx, i] = max(W, [], 2);
options(i)

result:

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

MATLAB 中的高效多类加权多数投票实现 的相关文章

  • 整数的十进制表示形式中的分隔数字

    例如 我想将用户输入作为整数输入 45697 并将前两位数字存储在数组 向量或其他内容中 例如 4 5 6 9 7 这样我就可以使用一些函数调用来检查前两个值 4 5 并对它们进行计算 问题 我不知道如何存储恢复前两个值 有没有简单的函数调
  • 傅里叶变换定理 matlab

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

    Solve Ax b 真正的双 A是超定的 Mx2 其中 M gt gt 2 b是MX1 我运行了大量的数据mldivide 并且结果非常好 我用 MKL 写了一个 mex 例程LAPACKE dgels但它远没有那么好 结果有大量噪音 并
  • 在 Matlab 中显示有理数

    我有两个整数 m n 它们一起形成 m n 形式的有理数 现在我只想以这种理性的形式在 Matlab 中显示它们 我可以通过这样做来做到这一点 char sym m n 所以 如果 例如m 1 n 2 Matlab将显示1 2 然而 如果m
  • 为什么 MATLAB 在打印大量 (.png) 图形时速度会变慢?

    我正在将大量数字打印为 png 文件 每个图都是数据矩阵中的一列图 我获取 png 文件并将它们串在一起形成动画 我的问题是 前几百张图像打印得很快 但创建每个新图形的时间却迅速增加 从前几百个 png 文件的约 0 2 秒到第 800 个
  • 非模态 questdlg.m 提示

    我的代码绘制了一个图 然后提示用户是否想使用不同的参数绘制另一个图 问题是 当 questdlg m 打开时 用户无法查看绘图的详细信息 这是代码 while strcmp Cont Yes 1 Some code modifying da
  • 从 Java 运行 MATLAB 函数

    我在 MATLAB 中有一个 m 文件 我想从 Java 调用该文件 并以字符串或 Java 中的任何形式获取解决方案 这听起来很简单 但由于某种原因我无法让它发挥作用 我试过这个 matlab nosplash wait nodeskto
  • 检查图像中是否有太薄的区域

    我正在尝试验证雕刻机的黑白图像 更多的是剪贴画图像 不是照片 我需要考虑的主要事情之一是区域的大小 或线条的宽度 因为机器无法处理太细的线条 所以我需要找到比给定阈值更细的区域 以此图为例 竖琴的琴弦可能太细而无法雕刻 我正在阅读有关 Ma
  • 如何为已编译的 MATLAB 创建安装程序并要求用户接受我们的许可条款?

    我正在 MATLAB 中编写程序分发给 Windows 用户 我使用 MATLAB 编译器和 MATLAB r2014a 版本来创建程序 我可以使用 MATLAB 应用程序编译器创建 Windows 安装程序 并且它的工作效果可以接受 但是
  • Matlab 一个图上有多个图例 2014b

    我想在一个地块上有多个传说 该解决方案在 2014b 版本之前完美运行 我试图弄清楚如何使用手柄优雅地制作它 但到目前为止还没有成功 欢迎任何想法 2013b 的示例 x 1 50 y1 sin x 2 y2 cos x 2 f figur
  • 在matlab中,如何读取python pickle文件?

    在 python 中 我生成了一个 p 数据文件 pickle dump allData open myallData p wb 现在我想在Matlab中读取myallData p 我的Matlab安装在Windows 8下 其中没有Pyt
  • 将 Matlab 数组移植到 C/C++

    我正在将 matlab 程序移植到 C C 我有几个问题 但最重要的问题之一是 Matlab 将任何维度的数组都视为相同 假设我们有一个这样的函数 function result f A B C result A 2 B C A B and
  • 如何将数据传递给 MATLAB oncleanup 函数?

    我有一个编译好的 matlab 程序 可以自动调整机器参数 在调整周期结束时 我需要恢复一些原始设置 有时会发生意外错误 有时用户会发现调整算法未正常工作 因此应终止 使用 control C 如果发生可预测的错误 我可以使用 try ca
  • MATLAB 除法...29/128 应该返回 0 吗?

    我真的不认为这是一个精度问题 答案应该是0 226左右 这是确切的代码 val I i j bucketSize pos val bucketSize I只是我从中获取值的矩阵 以下是 MATLAB 的输出 val 29 bucketSiz
  • 在 MATLAB 中绘图后恢复轴

    从文本文件绘制多种方法的输出后 未显示轴的右侧和上侧 我需要拥有它们并将它们加粗 就像当前的轴一样 绘制的数据来自存储每种方法数据的文件 每个数据文件都是一个 256x2 文件 包含 0 1 之间的值 第一列是精度 第二列是召回率 figu
  • MATLAB - 通过垂直连接子矩阵重新排列矩阵

    我在执行以下任务时遇到问题 假设一个 3x6 矩阵 A 0 2787 0 2948 0 4635 0 8388 0 0627 0 0435 0 6917 0 1185 0 3660 0 1867 0 2383 0 7577 0 6179 0
  • MATLAB:将当前文件夹设置为脚本位置

    我在不同的文件夹中有一些脚本和数据 我使用addpath和相对路径经常 我的问题是 只有当我的当前文件夹是我执行的脚本所在的位置时 这才有效 例如 如果我执行添加路径 X 的脚本 A 然后执行位于路径 X 中的脚本 B 则 Matlab 不
  • 如何在 MATLAB 中将矩阵元素除以列总和?

    有没有一种简单的方法可以将每个矩阵元素除以列和 例如 input 1 4 4 10 output 1 5 4 14 4 5 10 14 以下是执行此操作的不同方法的列表 使用bsxfun https www mathworks com he
  • 帮助我理解FFT函数(Matlab)

    1 除了负频率之外 FFT 函数提供的最小频率是多少 是零吗 2 如果它为零 我们如何在对数刻度上绘制零 3 结果总是对称的 或者只是看起来是对称的 4 如果我使用abs fft y 来比较2个信号 我是否会失去一些准确性 1 除了负频率之
  • 轴标注问题

    通过运行我编写的以下 matlab 函数 可以互换图中的 x 轴和 y 轴 谁能告诉我问题出在哪里或者帮我解决它吗 预先感谢您的任何帮助 function axislabeling n x 1 1 n y 1 1 n z zeros n n

随机推荐

  • 在画布中制作可点击区域来更改图像

    请帮我 在下面的画布中创建可点击区域 我可以将 onmousedown 事件分配给该区域 我知道如何使用不可见的 DIV 来做到这一点 但我认为有一种我不知道的更优雅的方法可以在画布中做到这一点 当我单击其中一个区域时 想要将图像名称传递给
  • 使用 Nokogiri 解析大型 XML

    因此 我尝试使用 Nokogiri 解析 400k 多行 XML 文件 XML 文件具有以下基本格式
  • 在 Eclipse 中安装 ADT 时出现问题

    我已经安装了 SDK 现在需要 Eclipse 插件 但是 这是行不通的 它达到大约 25 29 并挂起几分钟 然后失败 我收到以下错误消息 收集要安装的项目会话时发生错误 上下文是 profile SDKProfile 阶段 org ec
  • 如何在其他地方绘制不可见的 JFrame?

    我想将 JFrame 的内容绘制到另一个框架上 目前 我只有在 JFrame 可见时才能使其工作 有没有办法绘制隐藏的 JFrame 附加信息 在我的项目中 我需要能够旋转和缩放窗口 我不想编写自己的 window api 所以我想我也许能
  • 即使应用程序被卸载后也能保留设备标识符

    在我的 iPhone iPad 应用程序的用例中 有一个投票系统 一台设备可以将其投票发送到服务器一次 因此我的服务器需要识别用户的设备 我不希望用户注册帐户 因为这会使应用程序变得复杂 但是 我找不到有效的解决方案 UDID 已弃用 我认
  • SUMIF 排除隐藏行。小计?求和?

    我有 2 个巨大的事件表 第一个表是数据表 tblData 包含日期 持续时间和代码 用于识别事件 第二个表是汇总表 tblSummary 每个事件花费的总时间 我该如何过滤tblData并更新tblSummary 下面是一小部分tblDa
  • android中按钮点击的表单验证

    我正在开发一个 Android 应用程序 其中登录活动有 editText RadioButton Spinner 和一个按钮 因此 当按下按钮时 我必须通过检查是否填写了所有字段来验证我的表单 否则会向谁能帮我写一下java代码吗 提前致
  • 使用 Android Gallery 作为自动幻灯片放映

    您好 我想为应用程序创建一个启动屏幕 并让图库在计时器上旋转多个图像 谁能告诉我如何使用计时器为图库中的图像设置动画 一个简单的解决方案是 private int PicPosition private Handler handler ne
  • 将社交分享链接添加到phonegap应用程序

    我有一个使用 jquery mobile 的应用程序 它输出和图像 现在我已经在预览页面中显示了图像 并且我在下面添加了链接以在 Facebook 和 Twitter 以及其他平台上分享它们 我该如何编码 当用户单击共享按钮时 默认共享面板
  • 表的奇数行和偶数行

    我有一个从 MYSQL 数据库获取其行的表 table table
  • 多个 SELECT 语句合并到一个 JSON 中

    我确信这个问题必须在某个地方得到回答 但在我的一生中 无论我如何改变我的搜索短语 我似乎都找不到任何东西 我需要从两个完全独立的表中选择数据并将信息导出到 JSON 在这种情况下 它们在每个表中都是 1 条记录 如果我一次只选择 1 条并导
  • Python FTPS上传错误:425无法建立数据连接:不允许操作

    我正在尝试使用 ftps 将文件发送到 FTP 服务器 登录和更改目录工作 import ftplib ftps ftplib FTP TLS host user pwd ftps set pasv True ftps prot p ftp
  • 使用 MPMoviePlayerController 播放多个视频

    在我的应用程序中 我有多个视频 我希望当用户按下 MPMoviePlayerController 中的下一个或上一个按钮时 MPMoviePlayerController 应该播放特定的歌曲 但问题是 MPMoviePlayerContro
  • 如何在 App Store 中提交同一项目的两个二进制(iPhone 和 iPad)文件?

    我已经为 iPhone 创建了地图应用程序 并且根据客户要求 我也在 iPad 上开发了相同的地图应用程序 现在我有相同的地图应用程序项目 但有两个 ipa 文件 一个用于 iPhone 另一个用于 iPad 我已经将 iPhone 版本放
  • 使用指针在C++中显示char变量的地址?

    如何显示char变量的地址 我找到了一个使用类型转换的解决方案 首先将其转换为 int 或 float 或 void 等 然后使用指针显示地址 但是 除了没有类型转换的特定解决方案之外 还有其他替代方案吗 使用像这样的指针 char var
  • 使用 php yii2 在 Chrome 中下载 Excel 文件失败

    a href Files file xxxx class btn btn success Download File a 我有一个页面 其中有一个下载按钮 可以下载该文件 但下载失败 我已经检查过这个问题 但没有找到任何解决方案 上图显示没
  • 在Android中录音期间暂停或停止对讲语音

    我在手机 galaxy S6 中启用了辅助功能 然后尝试在单击按钮后进行录音 该按钮有一个包含长消息的 contentDescription 属性 问题是 Talkback 在语音留言录制过程中继续给出指示 我试图在录音时通过清空 cont
  • 在 Google Sheets 或 Excel 中计算当前月份和年份的行数

    我有一行填充了 MM dd yyyy 格式的日期 带有标题行 例如 DATES 5 12 2015 4 12 2012 5 7 2015 5 7 2014 我想计算与当前月份和年份匹配的行数 在上面的示例中 结果显然是两个 当时是 2015
  • Angular.js 动态表单输入类型

    我正在尝试制作一个 Angular js 应用程序 它从 JSON 对象创建动态表单输入 首先 我有一个 JSON 对象 称为字段 field id 209 form id 1 name firstname label First Name
  • MATLAB 中的高效多类加权多数投票实现

    这几天我想知道如何在matlab中有效地实现m位专家的加权多数投票 这是我想要的一个例子 假设我们有 3 位专家 其权重向量 w 7 2 6 假设他们对选项 A B C D 进行了 n 次投票 因此我们得到以下 n x m 投票矩阵 其中列