フィルターのクリア

'strcmp' function not working when called through another function, but works when used directly

4 ビュー (過去 30 日間)
function Raw = pre_post(Data,ID,Sec)
lookup = {'Au Data Log ID','Measured CO','Measured Co2','Measured HC', 'Measured CH4', 'Measured NOx', 'Measured NO'};
Header = Data.Header(1,1:sum(~cellfun('isempty',Data.Header)));
lookup_location = zeros(1,length(lookup));
for i=1:length(lookup)
lookup_location(1,i) = find(strcmp(Header,lookup{i}),1);
end
Rawdata = Data.Data(:,lookup_location);
zero = find(Rawdata(:,1)==ID(1));
Span = find(Rawdata(:,1)==ID(2));
Back = find(Rawdata(:,1)==ID(3));
Raw = mean(Rawdata(zero(1)+Sec(1):zero(1)+Sec(2),2));
end
I have the above code as a function, when i call the function as
Raw = pre_post(Data,ID,Sec);
I see an error
But code works if run without the function. Can someone tell me what is wrong with the function.

採用された回答

KSSV
KSSV 2017 年 8 月 10 日
Try this:
function Raw = pre_post(Data,ID,Sec)
lookup = {'Au Data Log ID','Measured CO','Measured Co2','Measured HC', 'Measured CH4', 'Measured NOx', 'Measured NO'};
Header = Data.Header(1,1:sum(~cellfun('isempty',Data.Header)));
lookup_location = cell(length(lookup),1);
for i=1:length(lookup)
lookup_location{i} = find(strcmp(Header,lookup{i}),1);
end
Initialize lookup_location as a cell..cell can take non equal arrays. When you initialize lookup_location as a zeros matrix with 1 row..it expects only one element inside the loop using Strcmp..so the error popped out.

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeData Type Conversion についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by