MATLAB Answers

0

how to solve too many arguments error?

Asked by hardeep thethi on 8 Oct 2016
Latest activity Commented on by Guillaume
on 8 Oct 2016
when i try to display multiple images using the formula below. i get error of too many arguments. when i execute the first statement , it gives me error. what am i doing wrong? the code is as follows:
if true
% code
[X1,map1]= image; ///image variable contains original jpg image.
[X2,map2]= image2; /// image2 variable contains transformed image.
subplot(1,2,1), imshow(X1,map1)
subplot(1,2,2), imshow(X2,map2)
end

  0 Comments

Sign in to comment.

2 Answers

Answer by Guillaume
on 8 Oct 2016
 Accepted Answer

Note: it is recommended that you do not use image as a variable name since it's already the name of a function in matlab.
The syntax [X, map] = is normally used in conjuction with imread to load an indexed image (rgb or grayscale images don't have an associated colour map), as in:
[X, map] = imread('someindexedimage.bmp');
Now, since the jpg format does not support indexed images, you'd never use that syntax for a jpg image.
Furthermore, the syntax
[something, something] = someothervariable;
would never be valid, since you're trying to assign a single variable into two variables.
In the end, if image and image2 are truly jpg images, then to display them simply:
subplot(1, 2, 1), imshow(image); %would be better called image1
subplot(1, 2, 2), imshow(image2);
Or you could do:
imshowpair(image, image2, 'montage');

  2 Comments

your first option worked for me. the imshowpair brings an error- Undefined function or method 'imshowpair' for input arguments of type 'uint8'. what if i want the two images to appear in one axis since one is transformation of other is it possible and how?
Guillaume
on 8 Oct 2016
You need the imaging toolbox for imshowpair.
As far as I know, you can only have one image per axis. If both images are the same height, you can always do:
imshow([image1, image2])
to have them side by side.

Sign in to comment.


Answer by Kishore Kumar on 8 Oct 2016

if true
% code
X1 = image;
X2 = image2;
subplot(1,2,1), imshow(X1,map1)
subplot(1,2,2), imshow(X2,map2)
end

  1 Comment

hi thanks for taking time to answer, but the code is giving me error of -undefined function or variable 'map1'.

Sign in to comment.