Info

此问题已关闭。 请重新打开它进行编辑或回答。

how to code for this problem??

1 次查看(过去 30 天)
sandy
sandy 2013-10-28
关闭: MATLAB Answer Bot 2021-8-20
i have Names with subject marks as labels(column wise) and values(double) in excel file,like NAME SUBJECT_1 SUBJECT_2.....upto SUBJECT_50.
but for some analysis,i need to fetch few subject values(15 subjects) with respect to name. my selected subjects labels will be given in header.txt.(wt ever subject label i give in this header.txt,my program should fetch that subject column data's alone and store in separate file). any help or suggestion for this concept??..............need help here

回答(1 个)

Image Analyst
Image Analyst 2013-10-28
Try this (untested):
[num, txt, raw] = xlsread(fullFileName); % Read in Excel file.
[rows, columns] = size(txt);
% Get random numbers
filesToSelect = randperm(rows, 15);
% Select 15 random filenames from the whole list.
selectedStrings = txt(filesToSelect, :);
% Now open headers.txt and pull out those
fid = fopen('headers.txt');
tline = fgetl(fid);
counter = 1;
while ischar(tline)
disp(tline)
% Get next line.
tline = fgetl(fid);
% Save it as a header line.
headers{counter} = tline;
end
% Extract just those we want.
headers = headers{selectedStrings);
fclose(fid);
  6 个评论
sandy
sandy 2013-10-31
thanks..using ismember() can find which column matched subject,but how to get the values below (only for matched subjecdt name)??
Image Analyst
Image Analyst 2013-10-31
Yes. It works on cell arrays of strings. Just look over the documentation and try it.
ca = {'SUBJECT_1'; 'SUBJECT_4'; 'SUBJECT_9'; 'SUBJECT_23'; 'SUBJECT_4'}
lookingFor = 'SUBJECT_4'
matchingLogicalIndexes = ismember(ca, lookingFor)
matchingRowNumbers = find(matchingLogicalIndexes)
In the command window:
ca =
'SUBJECT_1'
'SUBJECT_4'
'SUBJECT_9'
'SUBJECT_23'
'SUBJECT_4'
lookingFor =
SUBJECT_4
matchingLogicalIndexes =
0
1
0
0
1
matchingRowNumbers =
2
5

Community Treasure Hunt

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

Start Hunting!

Translated by