inputdlg string and convert variable to string
显示 更早的评论
Hello, I'm trying to achieve the following:
I need an input dialog box to open and type in a string. For example rock. Then I want rock to be a string (and not 'rock' with apostrophes) Because then rock can be recognized in the second line of code.
image = inputdlg('Enter file name!')
mask = tga_read_image([image '.mask.tga']);
I also tried to convert the variable image to a string, but that didn't work.
Can anybody help me? Cheers, Jonas.
采纳的回答
更多回答(2 个)
Star Strider
2017-6-21
The single quotes will appear in the output because the value is a character array. It will work if you use cell array indexing to return the character array from the cell:
imgstr = inputdlg('Enter file name! ');
imgname = imgstr{:}
test_output = [imgname '.mask.tga']
imgname =
'rock'
test_output =
'rock.mask.tga'
Also, please do not use ‘image’ as a variable name. It is the name of a built-in MATLAB function that you may need later, and won’t be able to use because you will have ‘overshadowed’ it.
Jonas K
2017-6-21
1 个评论
Using strrep to remove the file extension like that is not robust code. Consider this filename:
A.txt-2.txt
A much better way to remove the extension is to use the tool that is designed exactly for that purpose, which I showed you in a comment to my answer. Using the correct tool for a task makes your code clearer, less buggy, easier to understand,... and that is why any tool exists.
Also note that sprintf is preferred to string concatenation for generating filenames.
类别
在 帮助中心 和 File Exchange 中查找有关 Scripts 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!