6 views (last 30 days)

Hey

I need to write a function that the user enters a matrix, and the function returns "1" if the matrix is reversible and "0" if it's not.

I wrote this function-

function x=irr_mat(A)

if A==zeros(sz,'like',p)

x=0;

else

if size(A,1)==size(A,2)

x=1;

else

x=0;

end

end

end

and when I call the function-

A=randi([1,100],4);

irr_mat(A)

I get a note that -

Undefined function 'irr_mat' for input arguments of type 'double'.

Error in Untitled5 (line 3)

irr_mat(A)

can someone help me please?

Walter Roberson
on 20 Oct 2020

You need to take that code for irr_mat and store it in file irr_mat.m

Steven Lord
on 20 Oct 2020

Jan
on 20 Oct 2020

Edited: Jan
on 21 Oct 2020

You want to identify a "regular matrix and non-singular matrix". Then testing only, if it is square and not a zero matrix ist not sufficient. Even matrices with non-zero elements can be singular.

It is hard to guess, if your code is "correct", because you do not explain what you try to achieve. Therefore just some hints:

n=size(A)

if isequal(A,zeros(n))

is equivalent to:

if any(A)

So your code canbe simplified to:

function x = irr_mat(A)

if any(A(:)) && size(A, 1) == size(A, 2) && ismatrix(A) % BUGFIX: any(A) -> any(A(:))

x = 1;

else

x = 0;

end

end

% Or shorter:

function x = irr_mat(A)

x = (any(A) && size(A, 1) == size(A, 2) && ismatrix(A));

end

But this is not a hard test for singularity.

Walter Roberson
on 20 Oct 2020

You need to post complete error messages indicating what the error is, not just where it is. For example is it complaining that there is no such function det for inputs of class DynamicSystem ?

Reminder: det() will generate an error if it is passed something that is not a square matrix, so you should never call det() until after you have ensure that the matrix is square.

Opportunities for recent engineering grads.

Apply TodayFind the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
## 7 Comments

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/619833-reversible-matrix-in-matlab#comment_1072863

⋮## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/619833-reversible-matrix-in-matlab#comment_1072863

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/619833-reversible-matrix-in-matlab#comment_1072868

⋮## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/619833-reversible-matrix-in-matlab#comment_1072868

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/619833-reversible-matrix-in-matlab#comment_1072873

⋮## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/619833-reversible-matrix-in-matlab#comment_1072873

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/619833-reversible-matrix-in-matlab#comment_1072898

⋮## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/619833-reversible-matrix-in-matlab#comment_1072898

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/619833-reversible-matrix-in-matlab#comment_1072928

⋮## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/619833-reversible-matrix-in-matlab#comment_1072928

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/619833-reversible-matrix-in-matlab#comment_1072943

⋮## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/619833-reversible-matrix-in-matlab#comment_1072943

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/619833-reversible-matrix-in-matlab#comment_1072973

⋮## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/619833-reversible-matrix-in-matlab#comment_1072973

Sign in to comment.