How can i scan Column A in a matrix and if its true to have it average values in Column C

2 次查看(过去 30 天)
Basically i have a excel file full of information in 3 different columns which are about 5000 rows long and i need to know if there is a way to have matlab scan the first column until it finds what i have prompted the user to enter. Once it finds the first instance in column A to be true i need it to immediately go to column C and average the current value as well as the next 20 values starting with the first.
Basically i want to tell matlab to search column A for 'United States' if its true switch to column C and average the current value and the next 20 is this possible? If so how would i go about doing it. Thanks.

采纳的回答

Simon
Simon 2013-12-11
Hi!
So you already imported your data into matlab? What kind of matrix do you have? Is it a cell array with strings in the first column? What is in the third column?
If you have a cell array "C" with strings in the first column, you may find the user input "str" with
% logical vector of found strings
tf = strcmp(str, C(:, 1));
% do we have something?
if ~isempty(tf)
% positions (rows) in C
ind = find(tf);
% average for each found string
for n = 1:length(ind)
% this depends on the kind of matrix you have
mean([C{ind(n):ind(n)+20}])
end
end

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Data Import from MATLAB 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by