前提・実現したいこと
MATLABでタイマーを用いて終了時に一度だけエクセルにデータを書き出そうとしています。
実現したいことは以下2つです。
①以下のサンプルコードを参考にして実行したところ、エラーが出てしまい、修正方法がわからず困っています。
②現在x_value
とy_value
の値がdisp()
関数を使わなくても表示されていますが、これを表示させないようにさせたいです。
サンプルコード:タイマーを使用したコマンドの実行のスケジュール
発生している問題・エラーメッセージ
>> timer_sample x_value = 1 2 3 y_value = 4 5 6 x_value = 1 2 3 7 8 9 y_value = 4 5 6 10 11 12 Error while evaluating TimerFcn for timer 'timer-1' Error: Invalid expression. Check for missing multiplication operator, missing or unbalanced delimiters, or other syntax error. To construct matrices, use brackets instead of parentheses.
該当のソースコード
matlab
1global x_value 2global y_value 3 4time = timer('TimerFcn', 'stat=false; disp(''Timer!'') filename = ''data.xlsx''; x_range = ''sender''; y_range = ''receiver''; xlswrite(filename, x_value, x_range) xlswrite(filename, y_value, y_range) exit();', 'StartDelay', 30); 5start(time) 6 7%30秒後にexcelファイルを書き出すためのフラグ 8global stat 9stat = true; 10 11x_value = [x_value [1 2 3]] 12y_value = [y_value [4 5 6]] 13 14x_value = [x_value [7 8 9]] 15y_value = [y_value [10 11 12]]
試したこと
以下のようにしてタイマーを使わない場合は、エクセル書き出しができることは確認しました
matlab
1global x_value 2global y_value 3 4global stat 5stat = true; 6 7x_value = [x_value [1 2 3]] 8y_value = [y_value [4 5 6]] 9 10x_value = [x_value [7 8 9]] 11y_value = [y_value [10 11 12]] 12 13filename = 'data.xlsx'; 14x_range = 'sender'; 15y_range = 'receiver'; 16xlswrite(filename, x_value, x_range) 17xlswrite(filename, y_value, y_range)
しかし、以下のように警告は出ました
警告: 指定したワークシートを追加しました。 > In xlswrite>activate_sheet (line 300) In xlswrite/ExecuteWrite (line 266) In xlswrite (line 220) In timer_sample (line 18) 警告: 指定したワークシートを追加しました。 > In xlswrite>activate_sheet (line 300) In xlswrite/ExecuteWrite (line 266) In xlswrite (line 220) In timer_sample (line 19)
補足情報(FW/ツールのバージョンなど)
MATLAB R2017a
win 64bit
あなたの回答
tips
プレビュー