This snippit works in base program, but not in a function.

Have tried strjoin and several other commads with no success. Help?
opathName=[opath,'\',iname, num2str(a),'.tif'];
imwrite(uint16(I (:,:,a)),opath_ opathName,'tif','Compression','none'); tiff

7 comentarios

Adam
Adam el 16 de Nov. de 2015
I assume that when you use a function you have passed in or created in its workspace all the variables it needs for that instruction?
That is the most obvious reason why something would work on command line, but not in a function - functions have their own sealed workspace with nothing in it that isn't either passed in or created (or global parameters, but even these still have to be declared in the function to be used)
What error message do you observe?
Adam: Yes I've passed or created the variables [ I have made that mistake in past so reasonable question]
Walter: When I print opathname fm the function I get extra spaces in name and this error 'Error using imwrite (line 455) Unable to open file "C:\path\ iname 1 .tif" for writing. You may not have write permission.' . If I add delimiters [applies to any delimiter] to strjoin I get this error 'Unexpected MATLAB operator'.
SteveH
SteveH el 17 de Nov. de 2015
Editada: Image Analyst el 17 de Nov. de 2015
FYI for anybody interested found solution: have to use 'char' in function but not base program
opath_name = char(strcat(opath,'\',iname, num2str(a),'.tif'));
imwrite(uint16(I (:,:,a)),opathName,'tif','Compression','none');
You should get in the practice of using fullfile() and sprintf()
My guess is that either your opath or your iname is a cell array of strings when you have the problem. You did not show how you constructed them so we cannot point out the reason as yet.
That still won't work. What a mess - I'd much rather maintain Walter's code than yours, and I suggest you take his suggestion. By the way, to fix, change opathName to opath_name.
thanks Walter. I'll use fullfile(). learn something new every day.

Respuestas (0)

La pregunta está cerrada.

Preguntada:

el 16 de Nov. de 2015

Cerrada:

el 20 de Ag. de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by