我正在寻找一种方法来选择总和最大的矢量。有一个简单的方法吗?我在考虑编写循环,但我不确定如何循环遍历一组向量。
感谢您的帮助!
答案 0 :(得分: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填充缺失值,例如使用常规矩阵,否则你需要一个单元格数组。
如果您更喜欢不需要构建矩阵的解决方案,那么您可以遍历每个单独的向量并将总和存储在变量中,然后比较末尾的总和。如果您想要这样的解决方案,请询问!