MATLAB: I am getting answer as an empty matrix..,why.

functionismember

function t_A2_5()
s_names = {'nimisha' 'pooja' 'leela' 'jk'}
s_marks = [23 56 78 89]
n1 = numel(s_marks)
in_st.name = [];
in_st.marks = [];
for c1 = 1: n1
A.name = s_names {c1 };
A.marks = s_marks (c1 );
in_st(c1) = A;
clear A;
end;
clear c1;
c_name = 'pooja'
ind = Get_Data(s_names,c_name);
c_data = s_marks(ind)
disp(c_data)
return;
function ind = Get_Data(s_names , c_name)
ind=find(ismember(s_names,c_name))
In this i want such that whatever i give as c_name = pooja at 17th line, then it should give corresponding answer., it is compulsory for me to make Get_Data function.. Why this erro.?

Best Answer

For what I understand.
you have a cell list and a 'matching' array
s_names = {'nimisha' 'pooja' 'leela' 'jk'}
s_marks = [23 56 78 89]
If you ask for 'pooja', you just want to find the corresponding element in s_names, then the corresponding value in s_marks ? your code already did it. and there is no empty matrix !
In a simplier way, you should code more like this :
s_names = {'nimisha';'pooja';'leela';'jk'};
s_marks = [23 56 78 89];
c_name = 'pooja';
c_data = s_marks(strcmp(s_names,c_name));
disp(c_data)
56