How to put some string in a variable?
Show older comments
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 Comments
Geoff Hayes
on 5 Aug 2014
Hugo - where in the code would you update fichier to be the list of all "things" that can be selected? In the above function or elsewhere? Is handles.graph_1 a list box which will contain all of these selections?
Geoff Hayes
on 5 Aug 2014
And where does fichier get set with the selected items?
Answers (1)
Geoff Hayes
on 7 Aug 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 Comments
Geoff Hayes
on 7 Aug 2014
Since fichier is a cell array, do something like the following to check to see if the motor is already in the list
if isempty(find(strcmpi(fishier, String{Value})))
fichier = [fichier ; String{Value}];
end
For example,
fichier = {'' ; 'Electric' ; 'Thermic' ; 'NA' ; 'Other'}
find(strcmpi(fichier,'Electric'))
ans =
2
find(strcmpi(fichier,'Electric2'))
ans =
Empty matrix: 0-by-1
If the string is in the cell array, then find returns the index of that string in the cell array. Else if the string is not in the list (as in the second example) then an empty matrix is returned.
Geoff Hayes
on 8 Aug 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
Categories
Find more on Startup and Shutdown 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!