質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

Q&A

1回答

973閲覧

MATLABでこのようなエラーが出ます

naganosouitirou

総合スコア3

MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

0グッド

0クリップ

投稿2021/06/02 07:35

筋電図を取得するプログラムでうまくいかないところがあります.
エラーメッセージは出るもののよくわかりません.
どう改善したらいいのでしょうか.

MATLAB

1% プログラム名 EMG 2% 4チャンネル用 3% 入力パラメータの初期化 4channels=4; % チャネル数 5sampleRate=6000; % サンプリング周波数 6task=6; % ジェスチャーの数 % 測定回数 7duration =0.5; %積分時間[s] 測定時間 8samples=round(sampleRate*duration); 9emgdata=zeros(samples,channels); 10 11file=''; 12 13% A/D変換の初期化 14AI=analoginput('contec','AIO001'); % アナログ入力オブジェクトの作成 15addchannel(ai,[0:channels-1]); % チャネル数の設定 16set(AI,'SampleRate',sampleRate) % サンプリング周波数の設定 17ActualRate = get(AI,'sampleRate'); 18 19set(AI,'SamplesPerTrigger',samples); % サンプル数の設定 20set(AI,'InputType','SingleEnded'); 21set(AI,'TriggerType','immediate'); 22 23%フィルタの設定 24N=20; % フィルタの次数 25Fc0=5; % 低域遮断周波数 26Fc1=1000; % 高域遮断周波数 27Fc2=59.5; % ハムフィルタの設定 28Fc3=60.5; % ハムフィルタの設定 29 30[z,p,k]=butter(N,[Fc0 Fc1]/(sampleRate/2)); 31[sos_var,g]=zp2sos(z,p,k); 32Hd1=dfilt.df2sos(sos_var,g); 33[z,p,k] = butter(N,[Fc2 Fc3]/(sampleRate/2),'stop'); 34[sos_var,g] = zp2sos(z, p, k); 35Hd2= dfilt.df2sos(sos_var, g); 36 37 38%テンプレートの作成 39'測定開始' 40Data=zeros(samples,channels); 41rowdata=zeros(samples,channels,task); 42SUM=zeros(1,channels,task); 43 44for k=1:task % k:タスク 45 'Key in Enter' 46 pause(); 47 'データ取得開始' 48 start(AI); % 信号入力の開始 49 [data,time]=getdata(AI); % 入力信号の取得 50 51 'データ取得中' 52 DATA=filter(Hd1,data); % フィルタ 53 Data=filter(Hd2,DATA); % フィルタ 54 55 rowdata(:,:,k)=Data; %信号を配列に格納 56 %data4=data4+rowdata; 57 figure(k) % 入力信号をプロット 58 59 subplot(4,1,1);plot(time,rowdata(:,1,k)/5000) 60 axis([0 0.5 -2*10^-3 2*10^-3]) 61 xlabel('時間[sec]') 62 ylabel('電圧[V]') 63 grid on 64 subplot(4,1,2);plot(time,rowdata(:,2,k)/5000) % 入力信号をプロット 65 axis([0 0.5 -2*10^-3 2*10^-3]) 66 xlabel('時間[sec]') 67 ylabel('電圧[V]') 68 grid on 69 subplot(4,1,3);plot(time,rowdata(:,3,k)/5000) % 入力信号をプロット 70 axis([0 0.5 -2*10^-3 2*10^-3]) 71 xlabel('時間[sec]') 72 ylabel('電圧[V]') 73 grid on 74 subplot(4,1,4);plot(time,rowdata(:,4,k)/5000) % 入力信号をプロット 75 axis([0 0.5 -2*10^-3 2*10^-3]) 76 xlabel('時間[sec]') 77 ylabel('電圧[V]') 78 grid on 79 '測定終了' 80 81 emgdata(1:samples,1+(k-1)*channels:channels+(k-1)*channels)... 82 =rowdata(1:samples,:,k); 83end 84 85csvwrite(file,emgdata); 86 87'すべて終了' 88 89stop(AI) 90 91delete(AI); % アナログ入力オブジェクトの削除 92clear AI;% アナログ入力オブジェクトの消去 93clear; 94

エラーメッセージがこちらです.
エラー: analoginput (line 45)
The DAQ Legacy Interface is not supported on this platform. For more information on choosing between DAQ Legacy Interface and
Session-Based Interface, see the documentation on choosing the right interface.

To learn about using data acquisition devices on the win64 platform, see the documentation on the session-based interface.

エラー: EMG (line 14)
AI=analoginput('contec','AIO002');

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

要するにこのコードは、今のバージョンのMATLABでは動かないと言ってます。
こんな質問をするということは、このコードはあなたが作ったものではないと思いますが、ひとまず動いていた当時のバージョンのMATLABで動かしてみてはどうでしょうか。

投稿2021/06/04 00:31

yuki23

総合スコア1448

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

naganosouitirou

2021/06/04 20:26

このバージョンのMATLABではこのanaloginputが使えないのでしょうか?
yuki23

2021/06/05 04:42

エラーメッセージと私の回答に書いたとおりです。「古いインターフェースなのでサポートしていません」ということは「このバージョンでは使えません」ということです。
naganosouitirou

2021/06/10 04:27

助かりました.ありがとうございます.
naganosouitirou

2021/06/17 04:35

試しにこのプログラムが動いていた2011aのMATLABでプログラムを動かしてみたのですが同じようなエラーが出てきて動きませんでした.なぜでしょうか? 何度も質問して申し訳ないのですがよろしければ回答をお願いします.
jbpb0

2021/06/17 04:58 編集

> 2011aのMATLAB 32bit版入れました?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問