calculate a function based on array data
显示 更早的评论
I need to calculate dispersion effect based on how much farther the observer from the chimney.
I came up with this kind calculation :
% edited for full variable
hasil = str2num(get(handles.hasil, 'string'));
koefisiena = str2num(get(handles.koefisiena, 'string'));
sigmaz = str2num(get(handles.sigmaz, 'string'));
vangin = str2num(get(handles.vangin, 'string'));
for distance= [0.25; 0.5; 0.75; 1; 1.25; 1.5; 1.75; 2; 2.25; 2.5;];
y= {(hasil./(2*3.14*(koefisiena*(distance.^0.894))*sigmaz*vangin))};
end
however it gives an error output
Error using ./
Matrix dimensions must agree.
Error in desain>pushbutton2_Callback (line 520)
y= {(hasil./(2*3.14*(koefisiena*(jaraks.^0.894))*sigmaz*vangin))};
Even after changing the notation of division from matrix
./
into scalar
/
it still produces the typical error. I want to know how exactly to calculate the matrix value of a function
4 个评论
KSSV
2019-2-26
YOu have not defined many variables.....how do you expect us to help you?
Muhammad Waqi Azizi
2019-2-26
Adam
2019-2-26
Using the debugger is by far the easiest way to solve problems like this. Just look at the sizes of the two sides of the ./ operator on command line and it should be obvious. We have no idea what size they are since you just convert a string to get them. I assume they aren't all scalars otherwise I would not expect such an error.
"Even after changing the notation of division from matrix ./ into scalar /"
According to the MATLAB help thosee operators are actually:
- / mrdivide (i.e. matrix right division), and
- ./ rdivide (i.e. array right division).
See also:
Learning the difference between matrix and array operators is critical to using MATLAB.
回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Characters and Strings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!