Buscar

MATRIZ LINHA

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

clc; clear all;
%Armazenamento da matriz simétrica
cartao=input('entre com os valores de "barra de" na 1ª coluna , "barra para" na 2ª coluna e da impedancia "Z" na 3ª coluna: ')%exemplo [2 3 4; 1 2 3; 4 5 6;]
Cartao=cartao
k=size(cartao);%numero de linhas e colunas do cartao
nlinhas=k(1);%numero de linhas
ncoluna=k(2);%numero de colunas
% Descobrir numero de elementos distintos
soma=0;
t=1;
for n=1:(2*nlinhas)
 k=cartao(n);
 for i=1:nlinhas
 for j=1:ncoluna
 if cartao(i,j)==k & cartao(i,j)~=0
 soma = soma+1;
 cartao(i,j)=0;
 end
 end
 end
 
 if soma~=0
 b(t)=soma;
 t=t+1;
 b1(t)=k;
 end
 soma=0;
end
A=size(b);
disp(['numero de elementos distintos (Nº de barramentos): ',num2str(A(2))])
A(2);
disp(['Nº de conexoes: ',num2str(nlinhas)])
nlinhas;
Repete=b ; 
elementos=b1(2:(A(2)+1));% por exemplo: o elementos(1) repete b(1) veses no esquema, o elementos(2) repete b(2) vese... e assim vai...
Elementos=elementos;
%rotina para ordenar de forma decrescente o vetor "elementos"!
for i=1:A(2)
 for j=(i+1):A(2) 
 if elementos(i)<elementos(j) 
 aux=elementos(i); 
 elementos(i)=elementos(j); 
 elementos(j)=aux; 
 end 
 end
end 
%rotina para alinhar o vetor elementos com repete
for i=1:A(2)
 for j=1:A(2)
 if elementos(i)==Elementos(j)
 repete(i)=Repete(j);
 end
 end
end
% montar o vetor linha
N=A(2); %numero de elementos distintos
linha=zeros(A(2)+1,1);
linha(A(2)+1)=2*nlinhas + 1;
A(2)=A(2)+1;
for i=1:N 
 linha((N+1)-i)=linha(N-i+2)-repete(i);
end
disp('LINHA= ')
disp(linha)
%montar o vetor coluna
coluna=zeros(nlinhas,1);
for i=1:nlinhas
 for i2=1:N
 while linha(i2,1)
 coluna(i)=Cartao(i,2)
 end
 end
end

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando