【问题标题】:Selecting the vector with the largest sum Matlab选择和最大的向量 Matlab
【发布时间】:2014-12-01 19:09:21
【问题描述】:

我正在寻找一种方法来选择总和最大的向量。有没有一种简单的方法可以做到这一点?我正在考虑编写一个循环,但我不确定如何循环一组向量。

感谢您的帮助!

【问题讨论】:

  • 我猜这些向量都有相同数量的元素?你的数据是如何组织的?例如,它们是由一组单独的向量组成的大矩阵吗?
  • 是的,他们这样做了,我想我可以从它们创建一个矩阵,并在矩阵中找到最大和的行,但我不确定这是否会更容易

标签: matlab vector sum


【解决方案1】:

对于向量具有相同长度的情况(如评论中所述),我认为一种简单的无循环方法是从每个向量构建一个矩阵并直接获取行(或列)最大和:

clear
clc

RandMat = rand(8,10);

[~,Ind] = max(sum(RandMat,2)); %// Get row index for largest sum. If you want the column, use 1 instead.
MaxRow = RandMat(Ind,:); %// Index in original matrix to get the vector. If you want the column, use RandMat(:,Ind);

如果向量的长度不同,那么您需要用 NaN 填充缺失值,例如使用常规矩阵,否则您需要一个元胞数组。

如果您更喜欢不需要构建矩阵的解决方案,那么您可以遍历每个单独的向量并将总和存储在一个变量中,然后在最后比较总和。如果您想要这样的解决方案,请询问!

【讨论】:

  • @Lia 所以这个答案可以帮助您解决问题或者您需要额外的帮助?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多