У меня проблемы с повторением нескольких операторов if
более восьми раз. Код, кажется, отлично работает для первых нескольких сравнений, выполняет арифметику и возвращает/сохраняет строку вывода 'export_data'
. Однако после этого он возвращает только условие и ответ else
. Оцененные существа переменных имеют по 1500 рядов. Я добавил код ниже и две фотографии с результатами. Любое понимание будет очень оценено.Matlab не принимает решения, если утверждения
function [export_data] = WS_Zones(Forecast_WS, Observed_WS)
if (Forecast_WS > Observed_WS)
WS_Zone_1 = Observed_WS.*1.24;
WS_Zone_2 = Observed_WS.*1.28;
elseif (Forecast_WS < Observed_WS)
WS_Zone_1 = Observed_WS.*0.76;
WS_Zone_2 = Observed_WS.*0.72;
else
WS_Zone_1 = Observed_WS;
WS_Zone_2 = Observed_WS;
end
export_data=[Forecast_WS Observed_WS WS_Zone_1 WS_Zone_2];
filename = 'testdata.xlsx';
sheet = 1;
xlRange = 'A1';
xlswrite(filename,export_data,sheet,xlRange)
end
Matlab ведет себя отлично , Я предлагаю вам прочитать документацию [if] (http://www.mathworks.com/help/matlab/ref/if.html?requestedDomain=www.mathworks.com), в частности разделы «Сравнение массивов» и «Контрольные массивы» за равенство ". –
, если 'Forecast_WS' и' Observed_WS' не являются скалярами, 'если Forecast_WS> Observed_WS' будет зависеть только от сравнения первых элементов в каждом. – horchler