首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >凸向量指数超过数组界- matlab

凸向量指数超过数组界- matlab
EN

Stack Overflow用户
提问于 2018-11-22 17:54:34
回答 1查看 170关注 0票数 1

我在Matlab中为“组织语法匹配”编写了一些程序。

当我试图实现函数"conVector“时,我会得到错误”索引超过数组界限“。有人能帮我解决这个错误吗?

这是我的完整密码。谢谢!

代码语言:javascript
复制
function [newImage] = histShape (srcimg,destimg)
%find the histogram of the image

src = imgHist(srcimg);
dest = imgHist(destimg);

sna = normalizationHist(src);
dna = normalizationHist(dest);

conVector(sna,dna);

end

function [Hist] = imgHist (img)
[Rows,Cols] = size(img);
Hist = zeros(1,256);
for i=1:Rows
    for j=1:Cols
        Hist(img(i,j)+1)=Hist(img(i,j)+1)+1;
    end
end

end


function [Ahist] = normalizationHist (hist)
[Rows,Cols] = size(hist);
Ahist = hist;
for i=2:256
    Ahist(i)=Ahist(i-1)+hist(i);
end

Ahist = Ahist/(Rows*Cols);

end

function [cv] = conVector(SNA,DNA)
cv=zeros(1,257);
s = 1;
d = 1;
while s<=256
    if DNA(d)<SNA(s)
        d = d+1;
    else
        cv(s)=d;
        s = s+1;

    end
end
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-22 18:09:21

如果DNA(d:end)中的所有值都较小,那么SNA(s)中的值会比循环中的值不断地将1添加到d中,而不是添加到s中,并最终脱离绑定,因为它只受s的约束。

我想您应该将s = s+1从内部条件中删除,以便在每次迭代时执行它,或者在循环中添加d上的一个条件,或者将其转换为for循环。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53436138

复制
相关文章

相似问题

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