how to resolve the 'dot indexing not supported for this type of variable' error when creating GUIs with GUIDE?
1 517 views (last 30 days)
Show older comments
mohanish
on 4 May 2018
Edited: MathWorks Support Team
on 1 Nov 2023
I am writing a code where I hit a pushbutton, it shows me a error saying "Dot indexing is not supported for variables of this type". And this error is for the line 268-- set(handles.edit6,'string',fullname); fullname is basically the filepath and filename combined together.
Any kind of help will be appreciated. Thank you.
20 Comments
Loku Bhanu Teja R
on 2 Nov 2022
function Detection_lines_width()
image=imread('Vegetables.png');
A= rgb2gray(image);
rotA =imrotate(A,0,'crop');
figure;
xy=[];
for l=1:length(lines)
if eq(lines(l).point1(1),lines(l).point2(1))
dist=abs(lines(l).point1(2)-lines(l).point2(2));
else
dist=abs(lines(l).point1(l)-lines(l).point(1));
end
if dist>len
xy=[xy,lines(l)];
end
end
for k=1:length(xy)-1
if eq(xy(k).point1(1),xy(k+1).point1(1)) || eq(xy(k).point2(1),xy(k+1).point2(1))
if(xy(k).point1(2)<xy(k+1).point1(2))
rect=[xy(k).point1(1) xy(k).point1(2) abs(xy(k).point1(1)-xy(k).point2(1)) abs(xy(k).point1(2)-xy(k+1).point1(2)) ];
else
rect=[xy(k+1).point1(1) xy(k+1).point1(2) abs(xy(k).point1(1)-xy(k).point2(1)) abs(xy(k).point1(2)-xy(k+1).point1(2)) ];
end
elseif eq(xy(k).point1(2),xy(k+1).point1(2)) || eq(xy(k).point2(2),xy(k+1).point2(2))
if xy(k).point1(1)<xy(k+1).point1(1)
rect=[xy(k).point2(1) xy(k).point2(2) abs (xy(k).point1(2)-xy(k).point2(2)) abs (xy(k).point1(1)-xy(k+1).point1(1))];
else
rect=[xy(k+1).point2(1) xy(k+1).point2(2) abs (xy(k).point1(2)-xy(k).point2(2)) abs (xy(k).point1(1)-xy(k+1).point1(1))];
end
end
end
if rect(4)>width
rectangle('position',rect,'Linewidth',2,'EdgeColor','r')
end
end
This is my code and i am getting an error saying Dot indexing is not supported for variables of this type.
Accepted Answer
Walter Roberson
on 1 Jul 2018
You used GUIDE to construct these GUIs.
When you use GUIDE, then the "handles" structure that is passed into your function always refers to information stored against the figure that the graphic element is in. "handles" is not a global structure, it is a per-GUI structure, and you have constructed three separate GUI.
You need to change
set(handles.edit6,'string',fullname);
to
edit6 = findobj(0, 'tag', 'edit6');
set(edit6, 'string', fullname);
10 Comments
jianpeng
on 23 Mar 2022
Warning: Error executing a listener callback for the event ButtonExited defined for class matlab.graphics.primitive.canvas:
Error using getDatetimeSettings
The default value of the property 'MonthsOfYear' in class 'datetime' is invalid:
Variables of this type do not support indexing with points.
What is the reason for this error in the drawing, please answer thank uu!!!!
Walter Roberson
on 23 Mar 2022
I think we are going to need your code -- and your .fig too if you used GUIDE. You can attach them.
... though I suspect that you might have some third-party code that is interfering with MATLAB.
More Answers (11)
elvis danso
on 11 May 2019
You get this error when you open GUI straight from the .fig directly. Do not do so, instead from the .m script opened at the editor, click the run button to open the GUI. That is the magic!
1 Comment
Walter Roberson
on 11 May 2019
This is not quite accurate for what was happening for the user. They were using multiple GUIDE-created GUIs, not realizing that the handles structure managed by GUIDE is always relative to the figure (there is no global one for all of the GUIs together.)
They were also specifically using open_fig() on the extra GUIs rather than executing the GUIs. This has the same underlying issue as you refer to, that this does not execute the initialization code for that GUI. However, the solution for them is not to go to the editor and click the Run button, as they were opening the extra GUIs under program control, so they needed to execute the sub-GUIs by name (to cause their initialization to be run) instead of just lauching the figure.
Steven Lord
on 29 May 2018
Set an error breakpoint and run your code. If this problem occurs again, MATLAB will enter debug mode where the error occurs. Examine the variables on that line. If the error occurs on the line 268 that you quoted ( set(handles.edit6,'string',fullname) ) I'm almost certain that the problem is what Guillaume suggested, that handles is not a struct array as you expected it to be.
1 Comment
Walter Roberson
on 5 Jan 2019
You have not given us the source for some of the functions. You have not given us the code that sets local. You have not given us the external functions you invoke. You have not told us the exact line the problem occurs on. You have barely commented the code.
We are not going to be able to debug this for you.
Anudeep Peddi
on 23 Feb 2019
filename = 'users/anudeep/desktop/a11.txt';
delimiterIn = ' ';
headerlinesIn = 1;
A = importdata(filename,delimiterIn,headerlinesIn);
for k = [3:5]
disp(A.colheaders{1, k})
disp(A.data(:, k))
disp(' ')
end
I am getting an error "Dot indexing is not supported for variables of this type".
1 Comment
Walter Roberson
on 23 Feb 2019
When importdata does not detect any text then it returns a numeric matrix not a struct .
Charanraj
on 28 Nov 2019
I got a similar error of Dot indexing. But unable to find loop where the error exists :( I have attached a pic that tells about the error when I try to initial voltage for a capacitor in simscape using simulink.
Any guess or guideline to correct this error can be helpful. Thanks in advance.
3 Comments
Charanraj
on 28 Nov 2019
Edited: Charanraj
on 28 Nov 2019
Thanks Image Analyst.
For close_system(gcb), I don't get any results in command window.
For power_initstates(bdroot(gcb),gcb), I get the following-
Dot indexing is not supported for variables of this
type.
Error in power_initstates_pr
Error in power_initstates_pr
Error in power_initstates (line 28)
power_initstates_pr(varargin{:});
Error while evaluating UIControl Callback.
Thanks
Walter Roberson
on 28 Nov 2019
It looks to me as if you are using Simulink, possibly SimScape Electrical (formerly SimPowerSystems). The error appears to be happening somewhere while executing the MaskDialog callback of powergui . The line with the error appears to be within a .p file or similar. I cannot tell what is happening. It might be a bug.
Julián Aristizabal
on 6 May 2020
That´s the code:
rto = get_param('temperatura_pid/Gain1', 'RuntimeObject');
str = num2str(rto.OutputPort(1).Data);
statestxt =findobj('Tag', 'Resultado');
set(statestxt, 'string', str);
n=str2num(get(statestxt, 'String'));
That´s the error:
Dot indexing is not supported for variables of this type.
Error in interfaz_temp>Visualizar_Callback (line 135)
str = num2str(rto.OutputPort(1).Data);
Error in gui_mainfcn (line 95)
feval(varargin{:});
Error in interfaz_temp (line 42)
gui_mainfcn(gui_State, varargin{:});
Error in
matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)interfaz_temp('Visualizar_Callback',hObject,eventdata,guidata(hObject))
Error while evaluating UIControl Callback.
I don´t know what is wrong, thanks for your help.
8 Comments
Julián Aristizabal
on 6 May 2020
And what kind ok block can I change for the constant in order to the simulation never stops?
ABDULLAH DURMUS
on 13 May 2020
Edited: ABDULLAH DURMUS
on 13 May 2020
Hello, I'm new to matlab. I need your help for my homework.
I get the error for when I run it through the GUI. I did not receive an error when I run it through the editor.
error: Dot indexing is not supported for variables of this type.
Error in untitled> pushbutton1_Callback (line 93) axes (handles.axes1); Error in gui_mainfcn (line 95) feval (vararg the {}); Error in untitled (line 42) gui_mainfcn (gui_State, varargin {:});
Can you help for the solution
Thank you
1 Comment
ABDULLAH DURMUS
on 13 May 2020
My code on line 42: gui_mainfcn (gui_State, varargin {:}); My code on line 93: axes (handles.axes1); and My code on line 95: feval (vararg the {});
Zakarya Motea
on 3 Mar 2022
Also make sure that the model like simulink model being called from that function is not opened in another directory. this was the main problem for me, in order to make sure that the model is closed
type
close_system('modelname')
if it ask for saving
save_system('modelname')
if this going to happen too many times just embeed this code in the section of the code for closing the GUI.
0 Comments
kevin harianto
on 6 Apr 2022
Edited: Stephen23
on 6 Apr 2022
i got a Dot indexing is not supported for variables of this type.
image = ptcloud.Location;
Error in ()
I = helperPointCloudToImage(Location);
as well for this code: (goal is to increase pointCloud resolution to be at minimum 64, 1856, 5 at the end)
EDIT: copyright code removed.
0 Comments
Alon Zaharony
on 28 Apr 2022
Here is how i solved this issue. Not sure if that solution is relevant for all the cases, but worth a try:
0 Comments
Jiale Ji
on 16 Aug 2022
Edited: Jiale Ji
on 16 Aug 2022
Hello, I am a begineer on Matlab. Recently, I download an open-source tool to deal with some data. The Link is here:
While I was using the ' Rough Crop' function, the error is always ' Dot indexing is not supported for variables of this type'.
I attach the Code and some pics here.
Any help or tips are really helpful to me. I really appreciate it.
Thank you!
2 Comments
Walter Roberson
on 17 Aug 2022
Looking at the tutorial briefly, it appears that tool requires MS Windows with Excel installed ? We would probably also need an example data file to test with.
Jiale Ji
on 17 Aug 2022
Yeah, sure. I attach an example data document here.
Thank you so much, Walter.
Sharath
on 28 Dec 2022
i am new to matlab, what should i write code for callback in 'app designer'
1 Comment
Walter Roberson
on 28 Dec 2022
You have not defined what you want the App Designer callback to do
These days you would generally configure your model for Single Simulation Output https://www.mathworks.com/help/simulink/gui/single-simulation-output.html and you would invoke sim() to run the model, and then extract the appropriate information from the simulation output object. See for example https://www.mathworks.com/help/simulink/slref/sim.html?searchHighlight=sim%20&s_tid=srchtitle_sim%20_1#bvgu1qs
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!