how to correct the error in finding neighbor pixels in an 3x3 window? how many input arguments for an max() function have?
古いコメントを表示
I=[2 3 10 4 6; 1 4 7 5 3; 5 2 8 4 3;8 2 1 7 3;1 9 8 3 4;];
D = padarray(I,[1 1],0,'both');
[x y]=size(D);
m=1;
n=1;
for i=2:x-1
for j=2:y-1
I1(m,n)=max(max(D(i-1,j-1:j+1),D(i,j-1),D(i,j+1),D(i+1,j-1:j+1)));
n=n+1;
end
m=m+1;
n=1;
end
I1=I1(1:x-2,1:y-2);
error: Error using max Too many input arguments.
Error in sampl1 (line 9) I1(m,n)=max(max(D(i-1,j-1:j+1),D(i,j-1),D(i,j+1),D(i+1,j-1:j+1)));
回答 (1 件)
ES
2013 年 10 月 9 日
max ideally takes one argument, a vector or matrix and returns the maximum element(s) (elements in case the passed input is a matrix).
max also takes two arguments.
But foryour case, you can form a matrix x=[D(i-1,j-1:j+1),D(i,j-1),D(i,j+1),D(i+1,j-1:j+1)] and do a max on x like
max(x)
3 件のコメント
sheno39
2013 年 10 月 9 日
Walter Roberson
2013 年 10 月 9 日
max can also take three arguments. When it is given 2 arguments, it always proceeds element-by-element. When it is given three arguments with the second argument empty, it uses the third as the dimension number to take the maximum over.
Ashish Uthama
2013 年 10 月 10 日
Sheno39, if this answered your question, please mark it as accepted.
カテゴリ
ヘルプ センター および File Exchange で Resizing and Reshaping Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!