필터 지우기
필터 지우기

Info

이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.

Function definitions are not permitted in this context. is the error

조회 수: 2 (최근 30일)
Praveen  kumar
Praveen kumar 2016년 3월 9일
마감: MATLAB Answer Bot 2021년 8월 20일
function y=minutie(x)
i=ceil(size(x)/2);
if x(i,i)==0;
Y=0;
else
Y=sum(x(:))-1;
end

답변 (1개)

Walter Roberson
Walter Roberson 2016년 3월 9일
size(x) is a vector, even when x is a scalar or a vector. So i=ceil(size(x)/2) will have i be a vector. Then you use x(i,i) which is indexing x with that vector at each of the two indices, which would be a request to test 4 different locations (a 2 x 2 subarray). This would also fail if x is more than twice as long as it is wide or more than twice as wide as it is long.
Instead, check x(i(1), x(i(2))
Or, more simply, check
x( ceil(numel(x)/2) )
as that spot is going to be right in the middle of the array

이 질문은 마감되었습니다.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by