Effacer les filtres
Effacer les filtres

How to put some string in a variable?

2 vues (au cours des 30 derniers jours)
Hugo
Hugo le 5 Août 2014
Commenté : Geoff Hayes le 8 Août 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 commentaires
Geoff Hayes
Geoff Hayes le 5 Août 2014
And where does fichier get set with the selected items?
Hugo
Hugo le 5 Août 2014
Modifié(e) : Hugo le 5 Août 2014
modele_1 to 10 , graph and graph_1 are Popupmenus
fichier = String{Value};
set (handles.graph_1,'String',{'', fichier },'value',1);

Connectez-vous pour commenter.

Réponses (1)

Geoff Hayes
Geoff Hayes le 7 Août 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 commentaires
Hugo
Hugo le 8 Août 2014
Modifié(e) : Hugo le 8 Août 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 le 8 Août 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

Connectez-vous pour commenter.

Catégories

En savoir plus sur Migrate GUIDE Apps dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by