MATLAB code that can replace the inbuilt function 'norm'

4 visualizaciones (últimos 30 días)
Yue Han Seow
Yue Han Seow el 15 de Mzo. de 2019
Comentada: Yue Han Seow el 15 de Mzo. de 2019
Hello, I need to substitute the inbuilt function 'norm' with other matlab code that execute the same function. This is because the function 'norm' is not permitted to be translated using the MATLAB HDL Coder function.
Thank you in advance for the help!
  5 comentarios
John D'Errico
John D'Errico el 15 de Mzo. de 2019
As importantly, what is win? Is win a vector? Is win a matrix?
Yue Han Seow
Yue Han Seow el 15 de Mzo. de 2019
win is a window

Iniciar sesión para comentar.

Respuesta aceptada

John D'Errico
John D'Errico el 15 de Mzo. de 2019
Editada: John D'Errico el 15 de Mzo. de 2019
I suppose I can write a simple 1-norm code, that will work for a vector OR matrix.
Thus, the 1-norm of a vector is the sum of absolute values of the vector. So, if X is a vector, then norm(X,1) == sum(abs(X)).
If X is a matrix? Then the 1-norm is the maximum sum of all columns of the matrix. We can see how this works:
X = rand(3,3)
X =
0.72105 0.21868 0.063591
0.5225 0.1058 0.40458
0.9937 0.1097 0.44837
>> norm(X)
ans =
1.4581
>> max(sum(abs(X),1))
ans =
2.2372
>> norm(X,1)
ans =
2.2372
So now we can write a code that will work for any vector or matrix, computing the 1-norm.
function res = norm1(X)
if isvector(X)
res = sum(abs(X));
else
res = max(sum(abs(X),1));
end
This code does not replace norm, in the sense that it is far simpler. It does not compute a 2-norm, or any other norm. It does not work for 3-d matrices, but then, neither does norm work there.
  1 comentario
Yue Han Seow
Yue Han Seow el 15 de Mzo. de 2019
Thank you so much for your explanation and example! It helps me to understand it better!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by