How to put some string in a variable?

1 visualizzazione (ultimi 30 giorni)
Hugo
Hugo il 5 Ago 2014
Commentato: Geoff Hayes il 8 Ago 2014
Hi everyone ,
i have a question about this code :
function fonction_graphs_1(handles)
val = get(handles.graph,'Value');
str = get(handles.graph,'String');
switch str{val};
case 'Electrique'
set (handles.graph_1,'Enable','on');
nameList = {'modele_'};
for iIndex = 1:10
Field = sprintf('%s%d', nameList{1},iIndex);
if findobj('Tag',Field,'Enable','on')
H = handles.(Field);
String = get(H, 'String');
Value = get(H, 'Value');
fichier = String{Value};
set (handles.graph_1,'String',{'', fichier },'value',1);
end
end
i would like than " fichier " become a variables which can add all the thing i select, These are "String" and if i put " fichier " in this code :
set (handles.graph_1,'String',{'', fichier },'value',1);
All the string will be show ?
Is it possible ?
Thank you
  4 Commenti
Geoff Hayes
Geoff Hayes il 5 Ago 2014
And where does fichier get set with the selected items?
Hugo
Hugo il 5 Ago 2014
Modificato: Hugo il 5 Ago 2014
modele_1 to 10 , graph and graph_1 are Popupmenus
fichier = String{Value};
set (handles.graph_1,'String',{'', fichier },'value',1);

Accedi per commentare.

Risposte (1)

Geoff Hayes
Geoff Hayes il 7 Ago 2014
Hugo - if you just want to update fichier at each iteration and then add to the list after, then you could do something like this
fichier = {''};
for iIndex = 1:10
Field = sprintf('%s%d', nameList{1},iIndex);
if findobj('Tag',Field,'Enable','on')
H = handles.(Field);
String = get(H, 'String');
Value = get(H, 'Value');
fichier = [fichier ; String{Value}];
end
end
% now update the widget
set (handles.graph_1,'String',fichier,'value',1);
Try the above and see what happens!
  4 Commenti
Hugo
Hugo il 8 Ago 2014
Modificato: Hugo il 8 Ago 2014
nameList = {'modele_'};
for iIndex = 1:10
Field = sprintf('%s%d', nameList{1},iIndex);
if findobj('Tag',Field,'Enable','on')
H = handles.(Field);
String = get(H, 'String');
Value = get(H, 'Value');
fichier = String{Value} ;
if strncmp (fichier ,'ME_',3)
tableau{j} = fichier;
j = j+1;
end
end
end
tableau
for i=1:length(tableau)
for j=i+1:length(tableau)
if strcmp(tableau{i},tableau{j})
tableau{j}= -1;
end
end
end
tableau
set (handles.graph_1,'String',tableau,'value',1);
i would like to set only the String ME_X , and don't put -1
( -1 is when a Motor is 2 time or more show )
exemple :
tableau =
'ME_1.m' 'ME_1.m' 'ME_2.m' 'ME_1.m'
tableau =
'ME_1.m' [-1] 'ME_2.m' [-1]
They're put in a TABLE
Geoff Hayes
Geoff Hayes il 8 Ago 2014
Hugo - I'm not really clear on what you want. You state that i would like to set only the String ME_X , and don't put -1. But you have written code to put the -1. Why? Why not use the example I showed in the previous comment
if isempty(find(strcmpi(fishier, String{Value})))
fichier = [fichier ; String{Value}];
end

Accedi per commentare.

Categorie

Scopri di più su Migrate GUIDE Apps in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by