Neurochirurgie minim invazivă
"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv. Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice. www.neurohope.ro |
Descompunere vector dupa anumite reguli
Last Updated: Jul 16 2019 08:48, Started by
geotux
, Jul 12 2019 17:47
·
0
#1
Posted 12 July 2019 - 17:47
Salutare !
Vreau sa descompun un vector b in doua componente(vectori: b1 si b2), respectand urmatoarele reguli: 0) b = b1+b2 1) toate valorile de 2, se descompun in doua valori de 1 2) pentru prima jumatate a vectorului b: primul 1 se muta in b2 ; al 2-lea 1 ramane in b1; al 3-lea 1 se muta in b2.....si tot asa pana la finalul primei jumatati 3) pentru a II-a jumatate a vectorului b: primul 1 ramane in b1; al 2-lea se muta in b2; al 3-lea ramane in b1...si tot asa pana la final Pentru n=4 , asa ar trebui sa arate descompunerea: b = [2; 1; 2; 1; 0; 1; 2; 1 ;2] b1 = [1; 0; 1; 1; 0; 1; 1; 0; 1] b2 = [1; 1; 1; 0; 0; 0; 1; 1; 1] Am incercat asa , dar nu merge: clc; clear; close all; n=4; %b b=zeros((n-1)^2,1); b1=zeros((n-1)^2,1);b2=zeros((n-1)^2,1); b(1)=2; b(2:(n-2))=ones(n-3,1); b(n-1)=2; for i=1:n-3 b((n-1)*i+1)=1; b((n-1)*(i+1))=1; end b((n-1)*(n-2)+1)=2; b((n-1)*(n-2)+2:(n-1)*(n-2)+n-2)=ones(n-3,1); b((n-1)^2)=2; lx = (length(b)); half = ceil(lx/2); j=(n-1)^2; % 2 se descompune in 1 si 1, peste tot for i=1:lx if find(b(i)==2) b1(i)=1; b2(i)=1; end end % randuri impare din prima jum bimpar = b(1:2:end,:); % randuri pare din prima jum bpar = b(2:2:end,:); % cautam in prima jumatate a vectorului b for i=2:half if find(bimpar(i)==1) b1(i)=0; b2(i)=1; end % if find(bpar(i)==1) % b1(i)=1; % b2(i)=0; % end end % cautam in a II-a jumatate a vectorului b for i= half + 1 : j-1 if find(b(i)==1) b1(i)=1; b2(i)=0; end end b1' b2' |
#2
Posted 16 July 2019 - 08:48
Am rezolvat asa:
% descompunere termen liber dupa X is Y % b= bx + by % 2 se descompune in doi de 1, peste tot % prima jumatate a vectorului b: primul 1 se muta in b2, urmatorul 1 sta in b1...si tot asa % a II-a jumatate: primul 1 sta in b1, urmatorul se muta in b2...si tot asa pana la final clc; clear; close all; n=4; %b b=zeros((n-1)^2,1); b1=zeros((n-1)^2,1);b2=zeros((n-1)^2,1); b(1)=2; b(2:(n-2))=ones(n-3,1); b(n-1)=2; for i=1:n-3 b((n-1)*i+1)=1; b((n-1)*(i+1))=1; end b((n-1)*(n-2)+1)=2; b((n-1)*(n-2)+2:(n-1)*(n-2)+n-2)=ones(n-3,1); b((n-1)^2)=2; lx = (length(b)); half = ceil(lx/2); j=(n-1)^2; % 2 este descompus in doi de 1 b1(1)=1; b2(1)=1; b1(j)=1; b2(j)=1; % indica paritate(comutator) odd=1; % ciclam prin prima jumatate for i=2:half if b(i)==1 if odd==1 b1(i)=0; b1(i+1)=1; b2(i)=1; b2(i+1)=0; % urmatorul 1; par sau impar odd=0; else b1(i)=1; b1(i+1)=0; b2(i)=0; b2(i+1)=1; % urmatorul 1 odd=1; end end if b(i)==0 b1(i)=0; b2(i)=0; end if b(i)==2 b1(i)=1; b2(i)=1; end end %schimbam ordinea odd=0; % ciclam prin a II-a jumatate for i= half + 1 : j-1 if b(i)==1 if odd==0 b1(i)=1; b1(i+1)=0; b2(i)=0; b2(i+1)=1; % urmatorul 1 odd=1; else b1(i)=0; b1(i+1)=1; b2(i)=1; b2(i+1)=0; % urmatorul 1 odd=0; end end if b(i)==0 b1(i)=0; b2(i)=0; end if b(i)==2 b1(i)=1; b2(i)=1; end end b2(j)=1; [b';b1';b2'] |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users