Il problema è dovuto al fatto che, nella definizione dei cicli for fai partire l'indice da 0.
In MatLab gli indici di vettori e matrici cominciano da 1.
Eseguendo la tua funzione, MatLab dovrebbe aver generato il seguente mesaggi di errore:
Attempted to access A(0,0); index must be a positive integer or logical.
Error in prodotto (line 9)
RIS=RIS+A(i,j)*B(j,k);
Il suo "messaggio" è abbastanza chiaro.
C'è un ulteriore errore nella funzione: il calcolo dell'i-esimo elemento della matrice prodotto deve essere:
RIS=RIS+A(i,k)*B(k,j);
e non
RIS=RIS+A(i,j)*B(j,k);
In oltre, ma questo non è un errore, puoi spostare l'assegnazione del valore dell'i-esimo elemento della matrice di output "C" al termine del ciclo for con indice "k".
Devi modificare i cicli for come segure:
function[C]=prodotto(A,B)
[n,m]=size(A);
[m,p]=size(B);
C=zeros(n,p);
% for i=0:n
for i=1:n
% for j=0:m
for j=1:m
RIS=0;
% for k=0:p
for k=1:p
% RIS=RIS+A(i,j)*B(j,k);
RIS=RIS+A(i,k)*B(k,j);
% C(i,j)=RIS;
end
C(i,j)=RIS;
end
end
end
Hope this helps.