質問: serial('com3'); set(s,'baudrate',115200); set(s,'terminator',{'cr/lf','cr/lf'}); fopen(s); fprintf(s,sdata); このとき例えばaのデータが2であった場合、fprintfでデータを送る際は2桁の状態にして、つまりこの場合で言えば、02として送りたいと考えているのですが、どのようにして数字の前に0をつければいいでしょうか。
回答: のドキュメンテーションをご覧になると、 |dec2hex(d,n)| という構文があるのがわかります。 >> dec2hex(2,2) ans = '02' また、 |dec2hex| を使う代わりに、直接 で二桁の16進法表記を指定することができます。 >> fprintf('%02x',1:20) 0102030405060708090a0b0c0d0e0f1011121314 これをシリアルポートで送るには >> fprintf(s,'%02x',1:20)