首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MATLAB中计算双矩阵累积最大值的函数

MATLAB中计算双矩阵累积最大值的函数
EN

Stack Overflow用户
提问于 2015-06-18 02:28:22
回答 2查看 459关注 0票数 1

是否有任何函数可以计算矩阵的累积最大值?我有一个1*3000矩阵,我需要计算累积最大值。例如,如果矩阵是:

代码语言:javascript
复制
A = [8     3     6     7     9    10     6     2     2     3]

累积最大数组为:

代码语言:javascript
复制
B = [8     8     8     8     9    10    10    10    10    10]

我尝试过累积最大函数,但是我遇到了以下错误:

“double”类型输入参数的未定义函数“累计最大值”

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-18 02:50:43

如果cummax不能工作,那么我想出了一个小函数

代码语言:javascript
复制
function m = cummax2(x)
    [X, ~] = meshgrid(x, ones(size(x)));
    %replace elements above diagonal with -inf
    X(logical(triu(ones(size(X)),1))) = -inf;
    %get cumulative maximum
    m = reshape(max(X'), size(x));
end
票数 1
EN

Stack Overflow用户

发布于 2015-06-18 06:09:00

下面是一种使用bsxfun的替代方法

代码语言:javascript
复制
max(bsxfun(@(~,y)([A(1:y),-inf(1,numel(A)-y)]'), A', 1:numel(A)))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30905526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档