Add a new item to existing list and save it and Dot indexing is not supported for variables of this type

1 回表示 (過去 30 日間)
Hi,
I am developping an app for EV's. i am looking for a way to allow the future users to add new vehicles to the drop down menu. To do this, i need a code to modify the existing item list, and add new EVs referances. I found this code, i modified a bit and it somehow works
However ! when i close the app the name desepears, and i have to start again. What i am i missing ?, and how to make the code saves the new car, in the existing database without deleting it after restart
thank you
new_car = "WhatEver";
app.VehicleModelDropDown.Items = [app.VehicleModelDropDown.Items new_car];

回答 (1 件)

Mohammad Sami
Mohammad Sami 2020 年 8 月 31 日
You need to load and save Items from a .mat file if you wish your changes to be persisted across runs. Otherwise the items will always initialise to the values you have coded in your app.
  3 件のコメント
Mohammad Sami
Mohammad Sami 2020 年 8 月 31 日
Add a startupFcn to your app. This can be done by going into the code view and clicking App Input Arguments.
It will open a dialog, type "varargin" and click ok. It will create the startupFcn.
% Code that executes after component creation
function startupFcn(app, varargin)
list = load('VehicleList.mat');
app.VehicleModelDropDown.Items = list.VehicleList;
end
function UpdateVehicleList(app,new_car)
VehicleList = [app.VehicleModelDropDown.Items new_car];
save('VehicleList.mat','VehicleList','-append');
app.VehicleModelDropDown.Items = VehicleList;
end
Khalala Mamouri
Khalala Mamouri 2020 年 8 月 31 日
Hi mohammad thanks for the fast replay and code.
Unfortunately i run in some problems using the load function so a changed a bit the code, but still the same idea as yours. So i am using "fopen" instead of "load" and a .m file unstead of .mat. As i said i think the principal is the same for both, how ever, when i start simulation i get this error :
" Dot indexing is not supported for variables of this type "
The code i am using is given bellow.
function startupFcn(app, varargin)
evalin('base', 'clear all')
evalin('base', 'clc')
list = fopen('VehicleList.m','r'); % Read data from the file
A = textscan(list, '%c'); % Importing data
fclose(list); % close file
AB = char(A); % Cell to char conversion
assignin('base','A', A); % send to workspace
assignin('base','AB', AB); % send to workspace
app.VehicleModelDropDown.Items = AB.VehicleList; % << I get the error here
function UpdateVehicleList(app,new_car)
VehicleList = [app.VehicleModelDropDown.Items new_car];
save('VehicleList.m','VehicleList','-append');
app.VehicleModelDropDown.Items = VehicleList;
end
end
Thanks for your time ;)

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeDevelop Apps Using App Designer についてさらに検索

製品


リリース

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by