Dot indexing is not supported for variables of this type как исправить

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',...

3,116 views (last 30 days)

mohanish

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.

Accepted Answer

Walter Roberson

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);


More Answers (11)

elvis danso

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!


Steven Lord

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.


Anudeep Peddi

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».


Charanraj

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.


Julián  Aristizabal

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.


ABDULLAH DURMUS

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


Zakarya Motea

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.


kevin harianto

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.


Alon Zaharony

Here is how i solved this issue. Not sure if that solution is relevant for all the cases, but worth a try:


Jiale Ji

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!


Sharath

i am new to matlab, what should i write code for callback in ‘app designer’

I’m trying to import the data from a csv file. When the data is imported, a structure is created with two fields, but neither are accessible, as a dot indexing error is thrown.

These are the first few lines of one of the files

"U0[m/s] U0_Sd U[m/s ]  U_Sd L[N ]  D[N] Horiz. Verti. 4/3/2019 3:21 PM"
"12.933 0.056   13.919  0.914 -177.404  -262.059    0.000   0.000"
"12.977 0.050   14.038  0.972   -177.387    -262.139    0.100   0.000" 
"12.947 0.053 14.073    1.040   -177.299    -262.086    0.200   0.000"
"12.965 0.051   14.007  1.037   -177.271    -262.140    0.300   0.000" 

The code is as follows:

path='directory_path';

files=dir(strcat(path,'*.csv'));

for file=files'

    cur_file=(strcat(path,file.name));
    file_struct=importdata(cur_file);
    file_data=file_struct.data;
end

The error I get is «Dot indexing is not supported for variables of this type», but structures should be able to dot index. Additionally, when I go to the workspace, the variable file_struct shows up as a cell rather than a structure, but only does so when I include the line of code initializing file_data. Why is it converting the struct to a cell and how can I access my data? Thanks in advance.

Индексация в результаты вызова функции

Эта тема описывает, как отметить точкой индекс во временные переменные, созданные вызовами функции. temporary variable создается, когда результат вызова функции используется в качестве промежуточной переменной в большем выражении. Результат вызова функции в выражении является временным, потому что переменная, которую это создает, существует только кратко и не хранится в MATLAB® рабочая область после выполнения. Примером является выражение myFunction(x).prop, который вызывает myFunction с аргументом x, и затем возвращает prop свойство результата. Можно вызвать любой тип функции (анонимный, локальный, вложенный или частный) таким образом.

Пример

Рассмотрите функцию:

function y = myStruct(x)
  y = struct("Afield",x);
end

Эта функция создает структуру с одним полем, названным Afield, и присваивает значение полю. Можно вызвать функцию и создать структуру с полем, содержащим значение 1 с командой:

ans = 

  struct with fields:

    Afield: 1

Однако, если вы хотите возвратить значение поля непосредственно, можно индексировать в результат вызова функции с командой:

После того, как эта команда выполняется, временная структура, созданная командой myStruct(1) больше не существует, и MATLAB возвращает только значение поля. Концептуально, это использование совпадает с созданием структуры, индексацией в него и затем удалением его:

S = struct("Afield",1);
S.Afield
clear S

Поддерживаемые синтаксисы

MATLAB поддерживает индексацию точки в результаты вызова функции, как в foo(arg).prop. Другие формы индексации в результаты вызова функции (с круглыми скобками, такими как foo(arg)(2) или с фигурными скобками, такими как foo(arg){2}) не поддерживаются. Успешные команды должны соответствовать критериям:

  • Функция вызывается с круглыми скобками, как в foo(arg1,arg2,...).

  • Функция возвращает переменную, для которой точечная индексация задана, такие как структура, таблица или объект.

  • Индекс индексации точки допустим.

MATLAB всегда пытается применить операцию индексации точки к временной переменной, даже если функция возвращает переменную, для которой не задана точечная индексация. Например, при попытке индексировать в матрицу, созданную magic(3), затем вы получаете ошибку.

Dot indexing is not supported for variables of this type.

Можно добавить больше команд индексации на конец выражения, пока временные переменные могут продолжить индексироваться. Например, рассмотрите выражение:

table(rand(10,2)).Var1(3,:)

В этом выражении вы индексируете в таблицу, чтобы получить матрицу, которую оно содержит, и затем индексируйте в матрицу, чтобы получить третью строку:

  • table(rand(10,2)) составляет таблицу с одной переменной под названием Var1. Переменная содержит 10 2 матрица.

  • table(rand(10,2)).Var1 возвращается 10 2 матрица, содержавшаяся в Var1.

  • table(rand(10,2)).Var1(3,:) возвращает третью строку в матрице, содержавшейся в Var1.

Смотрите также

function | subsref

Похожие темы

  • Типы функций
  • Индексация массива
  • Доступ к данным в таблицах

Why do I see the error «Dot indexing is not supported for variables of this type. Error in matlab.int​ernal.addo​ns.AddOnsW​indow/brin​gToFront» when trying to start Add-on Explorer

MathWorks Support Team

Why do I see the following error when trying to start Add-on Explorer?

Dot indexing is not supported for variables of this type.  Error in matlab.internal.addons.AddOnsWindow/bringToFront

Accepted Answer

MathWorks Support Team

To resolve this issue, please regenerate your MATLAB Preferences, following the instructions in the link below: 

How do I regenerate my MATLAB preferences?


More Answers (0)

See Also

Categories

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

An Error Occurred

Unable to complete the action because of changes made to the page. Reload the page to see its updated state.

Why do I see the error «Dot indexing is not supported for variables of this type. Error in matlab.int​ernal.addo​ns.AddOnsW​indow/brin​gToFront» when trying to start Add-on Explorer

MathWorks Support Team

Why do I see the following error when trying to start Add-on Explorer?

Dot indexing is not supported for variables of this type.  Error in matlab.internal.addons.AddOnsWindow/bringToFront

Accepted Answer

MathWorks Support Team

To resolve this issue, please regenerate your MATLAB Preferences, following the instructions in the link below: 

How do I regenerate my MATLAB preferences?


More Answers (0)

See Also

Categories

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

An Error Occurred

Unable to complete the action because of changes made to the page. Reload the page to see its updated state.

Понравилась статья? Поделить с друзьями:
  • Dosbox overlay error
  • Dosbox fatal error 1307
  • Dosbox bgi error graphics not initialized use initgraph
  • Dos setblock 4ah error
  • Dos read unrecoverable error