Hi Guys! I have written a simple script, that's supposed to do some loop calculations. Here's the script:
a=3; initialVelocity = 38.8889; brakeMass = 14; velocity = (initialVelocity:a:54.72); coolingCoef = (85+0.0017*velocity.^2); A=0.4; time=(velocity-initialVelocity)/a;
temperature = zeros(1,6); temperature(1)=900; for x=2:length(temperature) dissipatedHeat = coolingCoef.*(temperature(x-1)) energy = dissipatedHeat.*time; specificHeatCapacity = 457+0.14219*temperature(x-1); temperatureDrop = energy/(brakeMass*specificHeatCapacity); temperature(x)=temperature(x-1)-temperatureDrop(x); end
When I run the proram it gives me series of answers. Like this:
dissipatedHeat = 1.0e+04 * 7.8814 7.9185 7.9583 8.0009 8.0462 8.0943
dissipatedHeat = 1.0e+04 * 7.7967 7.8334 7.8728 7.9149 7.9598 8.0074
dissipatedHeat = 1.0e+04 * 7.6280 7.6638 7.7024 7.7436 7.7875 7.8340
dissipatedHeat = 1.0e+04 * 7.3778 7.4125 7.4498 7.4896 7.5321 7.5771
dissipatedHeat = 1.0e+04 * 7.0511 7.0842 7.1199 7.1580 7.1985 7.2416
However, I just want the script to multiply value by value. So say on the first iteration it multiplies frst values from the vector and gives me the answer of temperature for second iteration. It the multiplies 2nd value from both matrices and so on. I think Matlab multiplies every member in a matrix by every member in other matrix. I tried adding a do before one of the values, but it does not help. Any ideas how to fix it? Think I'm just missing a small point somewhere,but can't find it. Thank you!
No products are associated with this question.
Perhaps you want:
... dissipatedHeat = coolingCoef(x-1) * (temperature(x-1)) ... energy = dissipatedHeat * time(x); % or time(x-1)?
Firstly, the code appears to be a strange blend of loop and vectorized (as Jan says).
Secondly, a short description of the underlying physics would help. Is it about a brake (of a moving vehicle), which heats and losses heat as the velocity of the vehicle changes?
Thirdly, I think it would be helpful to indicate physical units in comments to appropriate assignments.
Time out for now. I'll have a look at your code in my next break.
Allright guys! I'm really sorry for making the whole thing really confusing. I treid Jan's suggestion on Friday and it did not work. I checked it today and noticed I made a very small mistake at some point, that fixed everything. Thank you very much for all your help and I'll try to make my questions more consistent in the future!