Conflict between native and toolbox function
9 ビュー (過去 30 日間)
古いコメントを表示
Alexandre Delaux
2020 年 2 月 17 日
コメント済み: Alexandre Delaux
2020 年 4 月 9 日
I've an issue running a script which used to run fine in previous version of MATLAB (R2017a). Now I'm on R2019a.
This script uses a scroll function defined in a different toolbox than the native one (the error I get comes from this function, see below).
Dot indexing is not supported for variables of this type.
Error in matlab.ui.internal.mixin.Scrollable/scroll
Error in pop_prop_extended (line 210)
scroll(EEG.times, single(icaacttmp), 5, EEG.event, fh, datax, scrollax);
I've checked path defintion and the folder in which I have the function I want to use is well before the built-in one.
Here is what I get when I prompt the which command:
which -all scroll
C:\Users\Alexandre\Desktop\code\eeglab14_1_0b\plugins\Viewprops1.5\scroll.m
C:\Program Files\MATLAB\R2019a\toolbox\matlab\uicomponents\uicomponents\+matlab\+ui\+internal\+mixin\@Scrollable\scroll.p % Shadowed matlab.ui.Figure method
What does the 'Shadowed matlab.ui.Figure method' comment mean? Does it overrule the function I want to use anyway?
0 件のコメント
採用された回答
Ajay Pattassery
2020 年 2 月 20 日
編集済み: Ajay Pattassery
2020 年 4 月 9 日
You can add the path where the scroll.m file is located to the MATLAB search path permanently by using savepath function. Then MATLAB will run the scroll.m file that is defined by you over the built-in function.
Refer the following answer that explains how to add the user-defined path to the MATLAB search path.
Edit : In the above case, scroll is an object function and it takes precedence over the user defined function. I suggest you to use package.
You can create a folder named +mypack and add this file inside.
Later you can import the file using the command
import mypack.*
This overrides all others since it is second in the precedence order. Only variable names takes more precedence than this.
5 件のコメント
Ajay Pattassery
2020 年 4 月 9 日
I am mistaken in the above analysis. Here the inbuilt scroll.m took precedence in your case because it is an object function (Precedence 7 in the document). scroll if you go through the document takes class objects like Figure, GridLayout as argument.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Logical についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!