現在この質問をフォロー中です
- フォローしているコンテンツ フィードに更新が表示されます。
- コミュニケーション基本設定に応じて電子メールを受け取ることができます。
エラーが発生しました
ページに変更が加えられたため、アクションを完了できません。ページを再度読み込み、更新された状態を確認してください。
古いコメントを表示
Dear all,
I have the following command
xlswrite('data_Aus_Di_out'1.xlsx', yy ,'Sheet1', 'A2')
I would like to have something like
k={'data_Aus_Di_out'}
xlswrite('k.xlsx', mdata1 ,'Sheet1', 'A2')
so as to be able to change the name of the excel file OUTSIDE the lxswrite function
thank you
採用された回答
Image Analyst
2012 年 7 月 3 日
編集済み: Image Analyst
2012 年 7 月 3 日
Use sprintf() to create whatever base filename you want. Use fullfile() to combine the folder and the base filename into the full path (folder plus base filename). Also, see the FAQ: http://matlab.wikia.com/wiki/FAQ#How_can_I_process_a_sequence_of_files.3F for examples of how to create a variety of filenames in different ways.
% Make a base file name that has a number embedded in it.
baseFileName = sprintf('dataoutput_Austria_Diapers_output%d.xlsx', k);
% Combine it with the folder to get the full path of the file.
fullFileName = fullfile(folder, baseFileName);
% Now write it out to an Excel workbook.
xlswrite(fullFileName, mdata1 ,'Sheet1', 'A2');
7 件のコメント
THanks imager. IT works:
myFolder = 'C:\Users\sabbas\Documents\MATLAB\wers';
baseFileName = sprintf('input.xlsx', 1);
fullFileName = fullfile(myFolder, baseFileName);
[num,txt,raw]=xlsread(fullFileName);
[num,txt,raw]=xlsread(fullFileName);
However, the button at the top right of the editor is red. The problem seems to be in
baseFileName = sprintf('input.xlsx', 1);
because when I point the cursor to the this command, I read that
"Format string apparently does not with the argument count"
Why is this the case. can we fix that?
thanks
I noticed that by eliminating the number from baseFileName, that is by having just
baseFileName = sprintf('input.xlsx');
the problem seems to disappear and the code still works. Is my approach risky?
thanks
I don't think you understand sprintf correctly. It will build a string based on a format and a number of arguments that supply data (referenced by the format). In your case, you have not indicated any additional data in the format string.
baseFileName = sprintf('input.xlsx', 1);
That is a roundabout way of doing this:
baseFileName = 'input.xlsx';
Perhaps you meant this (note the '%d' indicates that you have supplied an integer and its value is to be converted to a string and inserted at that location):
baseFileName = sprintf('input%d.xlsx', 1);
I suggest you read the documentation on sprintf:
doc sprintf
Walter Roberson
2012 年 7 月 4 日
If you aren't going to put a number into baseFileName, then don't bother with sprintf().
baseFileName = 'input.xlsx';
Sabbas
2012 年 7 月 4 日
thanks Geoff
I think that the easiest approach is the following
k='output1.xlsx'
xlswrite(k, yy ,'Sheet1', 'A2')
Am I right? In this way I do not need to use "fullfile" etc..
Image Analyst
2012 年 7 月 4 日
Sure, that's easier, but not as robust. If you know for a fact that you always want to put your workbook in the same folder as your m-file, rather than, say the folder where your input data came from or somewhere else, then you can omit the folder and store it in whatever the current directory is. I recommend you read the FAQ: http://matlab.wikia.com/wiki/FAQ#Where_did_my_file_go.3F_The_risks_of_using_the_cd_function. so you don't specify where the workbook should go via the cd function.
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Startup and Shutdown についてさらに検索
タグ
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
