MATLAB Answers

I have a variable with a string that I would like to use as a filename, how do I input that string into a function rather than the variable name?

7 views (last 30 days)
AThomas
AThomas on 21 Jun 2020
Commented: AThomas on 22 Jun 2020
As below, I have a dialog box asking me for a filename.
It will then add the file extension onto the end.
answer = inputdlg(fileName,dlgtitle,dims,definput);
fileName1 = strcat(answer,'.dxf');
FID = dxf_open(fileName1);
I've tried numerous different ways, and they all end up with errors.
The code works normally if I hardcode the file name into the dxf_open function. e.g. 'Export.dxf'

  0 Comments

Sign in to comment.

Accepted Answer

the cyclist
the cyclist on 22 Jun 2020
Edited: the cyclist on 22 Jun 2020
I think I see the problem. Did you notice that the output of the inputdlg command is a cell array? You need the contents of that cell array, which is the character array you want. So you need something like this:
fileName1 = strcat(answer{:},'.dxf');
Note the {:} after answer, to get at the contents of the cell array.

  1 Comment

AThomas
AThomas on 22 Jun 2020
Thank you very much for your help.
The code works with the {:} in the dxf_open portion
fileName1 = strcat(answer,'.dxf');
FID = dxf_open(fileName1{:});

Sign in to comment.

More Answers (1)

the cyclist
the cyclist on 21 Jun 2020
I don't have dxf_open, but the following -- which is effectively the same as what you posted -- works for me:
answer = 'test';
fileName1 = strcat(answer,'.dxf');
fid = fopen(fileName1,'w');
fprintf(fid,'test_write')
fclose(fid)

Tags