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

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

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

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

Q&A

1回答

821閲覧

Matlab 関数 'eq' (タイプ'cell' の入力引数) が未定義です。 と出てしまい困っています。

tacjiuoooo

総合スコア0

MATLAB

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

0グッド

0クリップ

投稿2023/08/21 05:27

編集2023/08/21 06:51

Matlab初心者のものです。
現在心理学実験様のプログラミングを書いているのですが、実行を押すと以下の
「Matlab 関数 'eq' (タイプ'cell' の入力引数) が未定義です。 」
と出てしまい困っています。

コード内の30行目の Screen('Preferrence','SkipSyncTests',1)の「1」の部分を「0」に変更したりパソコン自体を再起動を試みましたがいずれも同様のエラーが出てしまいました。

以下にコードを記載しますので原因が分かる方がいれば是非教えていただきたいです。
よろしくお願いいたします。

matlab

1 2```function results = rennsyuu(subID) 3 4AssertOpenGL; 5 6if ~exist('subID','var') 7 subID=66; 8end 9 10fileName=['MLIexpSubj' num2str(subID) '.txt']; 11if exist(fileName,'file') 12 if ~IsOctave 13 resp=questdlg({['the file ' fileName 'already exists']; 'do you want to overwrite it?'},... 14 'duplicate warning','cancel','ok','ok'); 15 else 16 resp=input(['the file ' fileName ' already exists. do you want to overwrite it? [Type ok for overwrite]'], 's'); 17 end 18 19 if ~strcmp(resp,'ok'); 20 disp('experiment aborted'); 21 return 22 end 23end 24 25try 26 ListenChar(2);%余分なキーボード入力を排除 27 KbName('UnifyKeyNames');%OSで共通のキーにする 28 29 HideCursor; 30 31 Screen('Preferrence','SkipSyncTests',1); 32 33 GetSecs; 34 WaitSecs(0.1); 35 rand('state',sum(100*clock)); 36 37 38 %基本の情報 39 40 black = [128 128 128];%背景 41 white = [255 255 255];%リング 42 43 %実験条件(極性のコントラスト) 44 grey1 = [229 229 229];%左側の刺激(条件1) 背景の90% 45 grey2 = [25 25 25];%右側の刺激(条件1)背景の10% 46 47 grey3 = [216 216 216];%左側の刺激(条件2) 背景の85% 48 grey4 = [38 38 38];%右側の刺激(条件2) 背景の15% 49 50 grey5 = [204 204 204];%左側の刺激(条件3) 背景の80% 51 grey6 = [51 51 51];%右側の刺激(条件3) 背景の20% 52 53 grey7 = [191 191 191];%左側の刺激(条件4) 背景の75% 54 grey8 = [64 64 64];%右側の条件(条件4) 背景の25% 55 56 grey9 = [178 178 178];%左側の刺激(条件5) 背景の70% 57 grey10 = [77 77 77];%右側の刺激(条件5) 背景の30% 58 59 main_window = Screen('OpenWindow', 0, black, [0,0,1920,1080]); %背景 60 cnd = importdata('condition.m'); 61 cnd_ran = Shuffle(cnd); 62 63 for trial=1:25 64 65 if cnd_ran(trial)==1 66 Screen('FillRect', main_window ,white ,[345,405,615,675]); %リング 67 Screen('FillRect', main_window ,grey1 ,[355,415,605,665]); %左側の刺激 68 Screen('FillRect', main_window, white ,[1345,405,1615,675]); %リング 69 Screen('FillRect', main_window, grey2 ,[1355,415,1605,665]); %右側の刺激 70 Screen('Flip',main_window); 71 end 72 73 if cnd_ran(trial)==2 74 Screen('FillRect',main_window, white ,[345,405,615,675]); %リング 75 Screen('FillRect',main_window, grey3 ,[355,415,605,665]); %左側の刺激 76 Screen('FillRect',main_window, white ,[1345,405,1615,675]); %リング 77 Screen('FillRect',main_window, grey4 ,[1355,415,1605,665]); %右側の刺激 78 Screen('Flip',main_window); 79 end 80 81 if cnd_ran(trial)==3 82 Screen('FillRect',main_window, white ,[345,405,615,675]); %リング 83 Screen('FillRect',main_window, grey5 ,[355,415,605,665]); %左側の刺激 84 Screen('FillRect',main_window, white ,[1345,405,1615,675]); %リング 85 Screen('FillRect',main_window, grey6 ,[1355,415,1605,665]); %右側の刺 86 Screen('Flip',main_window) 87 end 88 89 if cnd_ran(trial)==4 90 Screen('FillRect',main_window, white ,[345,405,615,675]); %リング 91 Screen('FillRect',main_window, grey7 ,[355,415,605,665]); %左側の刺激 92 Screen('FillRect',main_window, white ,[1345,405,1615,675]); %リング 93 Screen('FillRect',main_window, grey8 ,[1355,415,1605,665]); %右側の刺激 94 Screen('Flip',main_window) 95 end 96 97 if cnd_ran(trial)==5 98 Screen('FillRect',main_window, white ,[345,405,615,675]); %リング 99 Screen('FillRect',main_window, grey9 ,[355,415,605,665]); %左側の刺激 100 Screen('FillRect',main_window, white ,[1345,405,1615,675]); %リング 101 Screen('FillRect',main_window, grey10 ,[1355,415,1605,665]); %右側の刺激 102 Screen('Flip',main_window) 103 end 104 105 rt(trial,1) = cnd_ran(trial); 106 FlushEvents; 107 GetChar; 108 Screen('Closeall'); 109 end 110 csvwrite('test.csv',rt); 111 Screen('Closeall'); 112 ShowCursor; 113 ListenChar(0); 114 115catch % 正常に終了した場合は、catch下は実行されません。 116 117 Screen('Closeall'); 118 ShowCursor; 119 ListenChar(0); 120 psychrethrow(psychlasterror); 121 122end 123 124end

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

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

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

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

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

jbpb0

2023/08/21 06:26

> 「Matlab 関数 'eq' (タイプ'cell' の入力引数) が未定義です。 」 が出るのは、コード中のどの行でしょうか?
y_waiwai

2023/08/21 06:26

このままではコードが読みづらいので、質問を編集し、</>(コードの挿入)ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
tacjiuoooo

2023/08/21 06:32

コメントありがとうございます。 具体的にどこの行という記載は無かったのですがScrrenでのエラーとして表示されているのでScreen関連の所かと思います。
jbpb0

2023/08/22 03:02 編集

コードを部分に分けて実行して、エラーが出るか確認したら、どの行でエラーが出てるのかの見当を付けやすくなると思います たとえば、「try」以降を全部バッサリ削除して実行したら、そのエラーは出ないのでしょうか? もし上記でもエラーが出るなら、「fileName=['MLIexpSubj' num2str(subID) '.txt'];」以降を全部バッサリ削除したら、どうなるのでしょうか? 【追記】 > Scrrenでのエラーとして表示されている とは、質問に書かれてる > 「Matlab 関数 'eq' (タイプ'cell' の入力引数) が未定義です。 」 とは別のエラーが表示されてる、ということでしょうか? (上記エラーには「Screen」とは書かれてないので) もしそうなら、質問を編集して、そのエラーも質問に追記してください 【追記2】 もし、質問のコードの「try」以降を削除してもエラーが出て、「fileName=['MLIexpSubj' num2str(subID) '.txt'];」以降を削除したらエラーが出ないなら、これかも https://teratail.com/questions/55210
guest

回答1

0

matlab Dispでぐぐると,Psychtoolbox-3のことが出てきて,octaveでも実行できそうと思って手持ちのubuntu環境にoctavePsychtoolbox-3をインストール(といってもapt install octave-psychtoolbox-3だけ)して実行させてみましたが,様々な警告は吐きつつも60行目のcondition.mの読み込みまでは動いているようです。

eq=の別名だとすると,matlabにPsychtoolboxがインストールされていないか,
事前にPsychtoolboxを読み込む手順が必要ではないでしょうか?

といっても,私はmatlabを使ったことがないので分かりませんが。

投稿2023/08/26 04:06

ujimushi_sradjp

総合スコア2179

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問