How to put some string in a variable?

조회 수: 4 (최근 30일)
Hugo
Hugo 2014년 8월 5일
댓글: Geoff Hayes 2014년 8월 8일
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
Geoff Hayes
Geoff Hayes 2014년 8월 5일
And where does fichier get set with the selected items?
Hugo
Hugo 2014년 8월 5일
편집: Hugo 2014년 8월 5일
modele_1 to 10 , graph and graph_1 are Popupmenus
fichier = String{Value};
set (handles.graph_1,'String',{'', fichier },'value',1);

댓글을 달려면 로그인하십시오.

답변 (1개)

Geoff Hayes
Geoff Hayes 2014년 8월 7일
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
Hugo
Hugo 2014년 8월 8일
편집: Hugo 2014년 8월 8일
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 2014년 8월 8일
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

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Startup and Shutdown에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by