54914


複数の addAnalogInputChannel を同時に定義しようとしています。  
MATLABドキュメントの[addAnalogInputChannel](https://jp.mathworks.com/help/daq/ref/addanaloginputchannel.html)に関するページを読みました。  
しかし、複数のチャネルを定義するためのヒントを得ることはできす、どのように解決すればいいのか困っています。  
MATLABのバージョンはR2017bです。

エラーメッセージ（実行時ではなく、プログラムを書いている時に表示されるエラー）

[code]

    %for the line  "ch + int2str(i) ="
    Parse error at '=': usage might be invalid MATLAB syntax. 
    % 'Voltage');
    Parse error at ')': usage might be invalid MATLAB syntax. 
    
[/code]

実行するスクリプト

[code]

    num = 5
    for i = 1:1:num
        ch + int2str(i) = addAnalogInputChannel(s, 'Dev1', 'ai' + int2str(i), 'Voltage');
    end
    
[/code]

下のように１つずつ書くのではなく、入力された数値に応じてチャネルを定義したいです。

[code]

    ch1 = addAnalogInputChannel(s, 'Dev1', 'ai1', 'Voltage'); 
    ch2 = addAnalogInputChannel(s, 'Dev1', 'ai2', 'Voltage'); 
    ch3 = addAnalogInputChannel(s, 'Dev1', 'ai3', 'Voltage'); 
    ...to ch5
    
[/code]


CC BY-SA 4.0
2019-05-12T09:05:37.393
54908
2019-05-12T16:15:14.133
question
c matlab
MATLABで複数の addAnalogInputChannel を同時に定義する時のエラー

[code]

        ch + int2str(i) = addAnalogInputChannel(s, 'Dev1', 'ai' + int2str(i), 'Voltage');
    
[/code]

の部分ですが、左辺は変数`ch`の中身と`int2str(i)`の計算結果を足し合わせるという計算ですので、`ch1`のような新しい変数は作成されません。このように複数のデータを番号で区別したいときは、配列を使うのが定番のテクニックです。

`addAnlogInputChannel`は関係ないので、普通の数値を用いて説明します。

[code]

    % 要素が5個の配列を作成 [1 4 9 16 25]
    for i = 1:5
        ch(i) = i*i;
    end
    
    % 2番目を表示
    disp(ch(2))
    
    % 4番目を表示
    disp(ch(4))
    
    % 配列の要素を全て足し合わせる
    s = 0;
    for i = 1:5
        s = s + ch(i);
    end
    disp(s)
    
[/code]

を実行すると

[code]

         4
        16
        55
    
[/code]

という結果が得られます。同様に

[code]

    num = 5
    for i = 1:1:num
        ch(i) = addAnalogInputChannel(s, 'Dev1', 'ai' + int2str(i), 'Voltage');
    end
    
[/code]

として、後から`ch(1)`とか`ch(num)`などと中身を参照すればいいでしょう。


CC BY-SA 4.0
2019-05-12T16:15:14.133
54914
2019-05-12T16:15:14.133
3605
54908
answer