Help solving an error
显示 更早的评论
Here is the code:
load PollutionData.txt;
array = PollutionData(:,1); %#ok<NODEF>
timearray = (0:.5:250);
timearray = reshape(timearray,[],1);
constant = reaeration(array);
array(3,:) = array(3,:) .* 0.001076; %conversion
array(6,:) = array(6,:) .* 0.0002778; %conversion
resultarray = deOxygen(array , timearray, constant);
plot(timearray(:,1) , resultarray(:,1))
return
function constant = reaeration(array)
constant = ((array(5,:) * array(3,:)) ^ 0.5) / (array(4,:) .^ 1.5);
return
function resultarray = deOxygen(array , timearray, constant)
resultarray = zeros(1,1000);
for a = (0:.5:250)
resultarray(a) = (((array(6,:) * array(2,:)) / (constant - array(6,:))) * (exp(-array(6,:) * timearray(a) * 3600) - exp(-constant * timearray(a) * 3600))) + (array(1,:) * exp(-constant * timearray(a) * 3600));
end
return
I'm getting in error in the deOxygen function at the "resultarray(a) = (((..." portion. Also, the two following errors also appear:
Attempted to access timearray(0); index must be a positive integer or logical.
Error in myHW7 (line 15) resultarray = deOxygen(array , timearray, constant);
And I have no idea why. Any ideas?
Thanks
采纳的回答
更多回答(1 个)
Image Analyst
2014-12-8
Because indexes start with one. Why don't you do this:
index = 1;
for a = (0:.5:250)
resultarray(index) =..........
index = index + 1;
% more code......
end
Or else this:
aArray = 0:.5:250;
for index = 1 : length(aArray)
a = aArray(index); % Extract the value of a that we need.
resultarray(index) =..........
% more code......
end
类别
在 帮助中心 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!