- It is dangerous to use FIND without checking whether the output is empty or non-scalar.
- If you have the image processing toolbox, most of your code, which is just a minimization filter, could be replaced by the single line
Matlab function won't return matrices as outputs?
조회 수: 8 (최근 30일)
이전 댓글 표시
I created a function that should return two matrices [roffset, coffset] as outputs, but when I run the function I receive two nx1 vectors. Though, the code works when I copy and paste it into the command window. Why won't it work through the function?
Here's the function:
function [roffset, coffset] = findLowNhbr(map)
r = 1;
c = 1;
% outer loop, going through the rows of the matrix
while c <= size(map,2)
% inner loop, going through the columns of the matrix
while r <= size(map,1)
if r == 1 || c == 1
roffset(r,c) = 0;
coffset(r,c) = 0;
elseif r == size(map,1) || c == size(map,2)
roffset(r,c) = 0;
coffset(r,c) = 0;
else
% determines the offsets
pr = -1:1; pc = -1:1;
% creates a matrix of map(r,c) and its surrounding elements
P = map(r + pr, c + pc);
[or, oc] = find(P == min(P(:)));
roffset(r,c) = or - 2;
coffset(r,c) = oc - 2;
end
r = r + 1;
end
c = c + 1;
r = 1;
end
댓글 수: 0
답변 (1개)
Matt J
2013년 4월 16일
편집: Matt J
2013년 4월 16일
Possibly because you're passing an nx1 matrix "map" as input. We can't really know what's going on without you specifying how to reproduce what you're seeing. Two remarks, though
imerode(map, ones(3))
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!