Calling multiple .m files into separate function
显示 更早的评论
function [B, H] = IsStable(polynomial)
if polynomial ~= AllNonZero(polynomial(false))
B=0;
H=[];
elseif polynomial ~= AllSameSign(polynomial(false))
B=0;
H=[];
else
H=HurwitzMatrix(polynomial);
pm = length(H);
for i=1:pm
minor(i)=det(polynomial(1:i,1:i));
end
if minor(i)>0
B=1;
else
B=0;
end
end
I am trying to calculate the stability of a Hurwitz Matrix by checking if the principle minors are more than zero. Any sugestions to improve the above code as it is not working when I call three separate .m files e.g. AllNonZero, AllSameSign and HurwitzMatrix? Thank you.
7 个评论
Walter Roberson
2019-3-19
What are you passing in as the first parameter? If you are not passing in an object or function handle, then polynomial(false) is a logical indexing request to return none of the elements of polynomial so polynomial(false) is likely to be empty.
Mughees Asif
2019-3-19
Mughees Asif
2019-3-19
Adam
2019-3-19
You should presize your array before the for loop:
minor = zeros(1,pm);
Mughees Asif
2019-3-19
Adam
2019-3-19
So, as Walter asked, what are you passing in as the parameter?
Walter Roberson
2019-3-19
If AllNonZero is false then isn't the matrix all 0 or at least a row of 0?
回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Matrices and Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!