API ログ ファイルをダウンロードして変換 | MATLAB
- Moku:Lab
 - Moku:Go
 - 
                        Moku:Pro
                        
                        
                            Moku:Proに関するよくある質問 Moku:Pro波形発生器 Moku:Proタイム&周波数アナライザ Moku:Proロジックアナライザ/パターンジェネレーター Moku:Proレレーザーロックボックス Moku:Proロックインアンプ Moku:Proスペクトラムアナライザ Moku:Proデータロガー Moku:Pro任意波形発生器 Moku:Proマルチ機器モード Moku:Pro位相計 Moku:Pro FIRフィルタービルダー Moku:Pro PIDコントローラー Moku:Proオシロスコープ Moku:Pro周波数応答アナライザ Moku:Proデジタルフィルターボックス
 - Python API
 - MATLAB API
 - 任意波形発生器
 - データロガー
 - デジタルフィルターボックス
 - FIR フィルタ ビルダー
 - 周波数応答アナライザー
 - レーザーロックボックス
 - ロックインアンプ
 - オシロスコープ
 - 位相計
 - PIDコントローラー
 - スペクトラムアナライザー
 - 時間と周波数アナライザー
 - 波形発生器
 - ロジックアナライザ/パターンジェネレーター
 - マルチ機器モード
 - Mokuクラウドコンパイル
 - Mokuに関するよくある質問
 - LabVIEW API
 
.li ファイルをログに記録してダウンロードする
ファイルにログを記録する代わりに、ファイルにストリーミングする (1 つのスクリプト内でログに記録して変換する) には、この記事を参照してください。
API ストリーミングと stream_to_file | MATLAB
まず、ログセッションを開始してファイルをダウンロードします。API の詳細については、API リファレンスをご覧ください。
データロガー | API リファレンスdownload_file MATLAB のデータロガーの例
% moku example: Basic Datalogger
% (c) 2025 Liquid Pty. Ltd.
%% Connect to your Moku
i = MokuDatalogger('192.168.###.###');
try
    % Set-up the Datalogger
    i.set_acquisition_mode('mode','Precision');
    i.set_samplerate(1e3);
    i.generate_waveform(1, 'Sine', 'amplitude',1, 'frequency',10e3);
    % Start the data logging session
    logging_request = i.start_logging('duration',10);
    log_file = logging_request.file_name;
    location = logging_request.location;
    % Set up to display the logging process
    progress = i.logging_progress();
    while progress.complete < 1
        fprintf('%d seconds remaining \n',progress.time_remaining)
        pause(1);
        progress = i.logging_progress();
    end
    % Download the log file from the Moku to current directory
    i.download_file(location, log_file, log_file);
    fprintf('Downloaded log file to local directory. %s\n', log_file)
catch ME
    % End the current connection session with your Moku
    i.relinquish_ownership();
    rethrow(ME)
end
% End the current connection session with your Moku
i.relinquish_ownership();出力例:
9 seconds remaining 
... 
0 seconds remaining 
File downloaded successfully!
Downloaded log file to local directory. MokuDataLoggerData_20250116_131731.liMokuクリ法
mokucli がインストールされていることを確認してください。 ユーティリティページからダウンロードできます。
MATLAB コマンド ウィンドウから、希望するファイル タイプ (csv、npy、mat、または hdf5) に変換できます。この例では、.mat に変換します。
>> ! mokucli convert MokuDataLoggerData_20250116_131731.li --format=mat
[===========================================================================] 
Done.別の方法としては、スクリプト内から mokucli を呼び出すことです。このユースケースでは、 streamingとstream_to_fileが理想的です。次の記事を参照してください。
API ストリーミングと stream_to_file | MATLAB
スクリプト内から mokucli を呼び出すのはベストプラクティスではありませんが、オプションとして利用できます。
command = ['mokucli convert --format=mat ' log_file];
system(command,'-echo');
file_name = [log_file(1:end-2), 'mat'];LIファイルコンバーター方式
あるいは、LIファイルコンバータGUIを使用してファイルを変換することもできます。これはMoku :アプリからアクセスするか、 ユーティリティページからダウンロードできます。

ファイルの種類を選択して、ファイルをコンバーターにドラッグアンドドロップするか、「ファイル | ファイルを開く」または「Ctrl/Cmd + O」を使用してコンバーターからファイルを開くことができます。

ファイルからデータを読み込む
その後、変換されたファイルを使用してデータを読み込んで分析し、実験に合わせてfile_nameおよびchannelsパラメータを調整できます。
file_name = 'MokuDataLoggerData_20250116_131731.mat';
channels = 2;
disp(file_name);
if ~isfile(file_name)
    error('Convert failed, no file received');
end
data = struct('time', [], 'ch1', []);
file = load(file_name);
data.time = file.moku.data(:, 1);
for i = 1:channels
    data.(['ch', num2str(i)]) = file.moku.data(:, i+1);
end
keys = fieldnames(data);
for k = 1:numel(keys)
    key = keys{k};
    disp([key, ': ', mat2str(data.(key)(1:3)), ' ... [', num2str(data.(key)(end)), ']']);
end
fig = figure('Position', [100, 100, 1000, 300]);
hold on;
for i = 1:channels
    plot(data.time, data.(['ch', num2str(i)]), 'DisplayName', ['Channel ', num2str(i)]);
end
title('Logged Data');
grid on;
xlabel('Time (s)');
ylabel('Voltage (V)');
legend show;
hold off;出力例:
MokuDataLoggerData_20250116_131731.mat
time: [0;0.001;0.002] ... [9.999]
ch1: [0.00137754767956721;0.00140193458810245;0.00135472403439962] ... [0.0011665]
ch2: [0.0156492042681293;0.0155779194585648;0.0155710410997472] ... [0.015813] 