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));

回答(1 个)

Matt J
Matt J 2022-7-28

0 个投票

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

6 个评论

BA
BA 2022-7-28
编辑:BA 2022-7-28
it's a typo, but still have the problem. Any suggestions?
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 2022-7-28
编辑:BA 2022-7-28
.mat file is huge one (MRI video)
This is the error I get:
error: =: nonconformant arguments (op1 is 1x1, op2 is 1x28)
We only need matrix(:,:,1) to trigger the error.
Matt J
Matt J 2022-7-28
编辑:Matt J 2022-7-28
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.
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.

请先登录,再进行评论。

标签

提问:

BA
2022-7-28

编辑:

2022-7-28

Community Treasure Hunt

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

Start Hunting!

Translated by