Effacer les filtres
Effacer les filtres

how to get an matrix as an output in a function

3 vues (au cours des 30 derniers jours)
Faezeh Manesh
Faezeh Manesh le 23 Fév 2020
Commenté : darova le 24 Fév 2020
I have the following function I do not know why it is not working. Would you please help me?
function [L_e]=L_element(e,nnpe,nn)
% Gather matrix
L_e=zeros(nnpe,nn);
for i=1,nnpe
for j=1,nn
if j==(nnpe-1)*(e-1)+i
L_e(i,j)=1;
end
end
end
end

Réponse acceptée

Rik
Rik le 23 Fév 2020
Modifié(e) : Rik le 23 Fév 2020
The mlint is giving you a hint: it wants you to put a semicolon to suppres output. Why would you have an output with the for loop? Because you put a comma instead of a colon:
function [L_e]=L_element(e,nnpe,nn)
% Gather matrix
L_e=zeros(nnpe,nn);
for i=1:nnpe
for j=1:nn
if j==(nnpe-1)*(e-1)+i
L_e(i,j)=1;
end
end
end
end
Of course you can also avoid the nested loop:
function [L_e]=L_element(e,nnpe,nn)
[I,J]=ndgrid(1:nnpe,1:nn);
L_e= J==(nnpe-1)*(e-1)+I ;
L_e=double(L_e);
end
  5 commentaires
Faezeh Manesh
Faezeh Manesh le 23 Fév 2020
Thanks for your response it is working now.
darova
darova le 24 Fév 2020
Don't accept the answer

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by