Filter löschen
Filter löschen

Info

Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.

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

2 Ansichten (letzte 30 Tage)
Praveen  kumar
Praveen kumar am 9 Mär. 2016
Geschlossen: MATLAB Answer Bot am 20 Aug. 2021
function y=minutie(x)
i=ceil(size(x)/2);
if x(i,i)==0;
Y=0;
else
Y=sum(x(:))-1;
end

Antworten (1)

Walter Roberson
Walter Roberson am 9 Mär. 2016
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

Diese Frage ist geschlossen.

Community Treasure Hunt

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

Start Hunting!

Translated by