As = $((0,1,2,3,4,5,6,7,8,9,10),(5,0,0,0,0,0,0,0,0,0,0),(6,0,0,0,0,0,0,0,0,0,0),(7,0,0,0,0,0,0,0,0,0,0),(1,0,0,0,0,0,0,0,0,0,0),(2,0,0,0,0,0,0,0,0,0,0),(3,0,0,0,0,0,0,0,0,0,0))$
devo creare una funzione che mi scriva 1 quando i valori, ad esempio, 5 nella prima colonna e 5 nella prima riga sono uguali.
Non so se si è capito cosa voglio fare, ma vi lascio il risultato di quello che dovrebbe venire, qui sotto:
As = $((0,1,2,3,4,5,6,7,8,9,10),(5,0,0,0,0,1,0,0,0,0,0),(6,0,0,0,0,0,1,0,0,0,0),(7,0,0,0,0,0,0,1,0,0,0),(1,1,0,0,0,0,0,0,0,0,0),(2,0,1,0,0,0,0,0,0,0,0),(3,0,0,1,0,0,0,0,0,0,0))$
io la matrice As l'ho già creata non riesco a trovare il modo di ottenere il valore 1 quando il valore di 2 elementi sono uguali.
Grazie a chi potrà e vorrà aiutarmi.
Per completezza allego il codice che ho utilizzato finora:
- Codice:
clc
clear all
% Dati
A(:,:,1)=20.09; %cm^2
A(:,:,2)=25.34; %cm^2
E=21000; %kN/cm^2
I(:,:,1)=869.3; %cm^4
I(:,:,2)=606,2; %cm^4
n_e=2; %numero di elementi
H=300;
L(:,:,1)=200;
L(:,:,2)=H*cotd(45);
gdlT=[0:10];
gdlE(:,1,1)=[5 6 7 1 2 3];
gdlE(:,1,2)=[1 2 4 8 9 10];
% coordinate nodali
ex(:,:,1)=[0 L(:,:,1)];
ex(:,:,2)=[L(:,:,1) L(:,:,1)+H];
ey(:,:,1)=[0 0];
ey(:,:,2)=[0 H];
% Vettore dei carichi
eq(:,:,1)=[0 0];
eq(:,:,2)=[0 10e2];
% Matrice dei gradi di libertà
Edof=[1 5 6 7 1 2 3;
2 1 2 4 8 9 10];
% Calcolo delle matrici di rigidezza elemento per elemento
for i = 1:n_e
Ke(:,:,i)=matrix_Ke(E,I(:,:,i),A(:,:,i),ex(:,:,i),ey(:,:,i));
end
% Matrice di Assemblaggio
As=[gdlE(:,1,1) zeros(length(gdlE(:,:,1)),length(gdlT)-1)]
As=[gdlT; As]