how to fix this error 'interp2'

imshow(matrix(:,:,1))
%identify axes
[x y] = ginput(2);
% preallocate matrices
cog = zeros(size(matrix,3),1);
%cog
% loop start
for i = 1:size(matrix,3)
I = matrix(:,:,i);
n = ceil(norm([diff(x), diff(y)]));
test = interp2(I, linspace(x(1), x(2),n), linspace(y(1), y(2),n));
cog(i) = sum((1:length(test)).*test')/sum(test);
% loop end
end
scog = (cog - min(cog)) / (max(cog) - min(cog));

Réponses (1)

Matt J
Matt J le 28 Juil 2022

0 votes

Because your first argument to interp2 is a matrix while the second is a scalar.

6 commentaires

BA
BA le 28 Juil 2022
Modifié(e) : BA le 28 Juil 2022
it's a typo, but still have the problem. Any suggestions?
Matt J
Matt J le 28 Juil 2022
it's a typo,
You haven't fixed the typo in your post, so we don't know what your current code is. In addition to that, I suggest you provide us the means to run the code, in particular by attaching "matrix" in a .mat file.
BA
BA le 28 Juil 2022
Modifié(e) : BA le 28 Juil 2022
.mat file is huge one (MRI video)
This is the error I get:
error: =: nonconformant arguments (op1 is 1x1, op2 is 1x28)
Matt J
Matt J le 28 Juil 2022
We only need matrix(:,:,1) to trigger the error.
Matt J
Matt J le 28 Juil 2022
Modifié(e) : Matt J le 28 Juil 2022
This is the error I get:
That is not what a Matlab error message looks like. As a routine matter, you should copy/paste error output messages in their entirety.
Steven Lord
Steven Lord le 28 Juil 2022
From these questions: 1, 2 it sounds like the poster is using Octave rather than MATLAB. If that's the case, that would explain the difference in the appearance of the error message.

Connectez-vous pour commenter.

Catégories

En savoir plus sur MATLAB dans Centre d'aide et File Exchange

Tags

Question posée :

BA
le 28 Juil 2022

Modifié(e) :

le 28 Juil 2022

Community Treasure Hunt

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

Start Hunting!

Translated by