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?

4 ビュー (過去 30 日間)
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'

採用された回答

the cyclist
the cyclist 2020 年 6 月 22 日
編集済み: the cyclist 2020 年 6 月 22 日
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 件のコメント
AThomas
AThomas 2020 年 6 月 22 日
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{:});

サインインしてコメントする。

その他の回答 (1 件)

the cyclist
the cyclist 2020 年 6 月 21 日
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)
  1 件のコメント
AThomas
AThomas 2020 年 6 月 22 日
Thanks, but when I try that I get the error "Error using dxf_open Too many input arguments"

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeCharacters and Strings についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by