User defined function to output matrix
조회 수: 13 (최근 30일)
이전 댓글 표시
I am in need of some help with a user defined function. I have it so it will output a column array of zeros however I need to function to fill the array dependant on a number of conditions and I have no idea how to get from where I am to where I need to be.
function [Q] = O_R_B(H)
%Operating rule B for varying dam heights
% Determining the usage rates for the dam for different dam heights
H_max = 30.9; %dam height in m (scaled 1:300)
Q_out = 138; %normal output rate
Q = zeros(length(H),1);
for k = 1:length(H)
if H >= 1*H_max;
Q = string('issue warning');
elseif H >= 0.9*H_max;
Q(k) = 4 * Q_out;
elseif H < 0.9*H_max & H>= 0.85*H_max;
Q(k) = 2* Q_out;
elseif H < 0.85*H_max & H>= 0.4*H_max;
Q(k) = Q_out;
elseif H < 0.4*H_max & H>= 0.2*H_max;
Q(k) = 0.5*Q_out;
else H< 0.2*H_max;
Q(k) = 0;
end
end
end
댓글 수: 0
채택된 답변
James Tursa
2017년 9월 23일
편집: James Tursa
2017년 9월 23일
You need to index H also in your code. E.g.,
if H(k) >= 1*H_max;
error('H too large');
elseif H(k) >= 0.9*H_max;
Q(k) = 4 * Q_out;
:
etc
댓글 수: 6
James Tursa
2017년 9월 23일
편집: James Tursa
2017년 9월 23일
You could issue a warning and fill the element with NaN. E.g.,
if H(k) >= 1*H_max;
Q(k) = NaN;
warning(sprintf('H(%d) element too large',k));
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!