![]() |
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 |
Gasire X cel mai apropiat intr-un tabel (x,y) cu afisare Y corespunzator
Last Updated: Jul 20 2018 11:16, Started by
xr400
, Jul 13 2018 17:52
·
0

#1
Posted 13 July 2018 - 17:52

Salutare amatorilor de vba !
Sunt mai multe valori X care trebuiesc comparate cu mai multe perechi (X,Y). Pentru fiecare X trebuie gasita perechea cea mai apropiata superioara si inferioara X nu are valoare exacta ca vreo pereche (X,Y) din tabel. Va rog indrumati-ma spre niste functii vba ca sa rezolv aceasta problema. As putea face cu comparatie directa (si poate este mai simplu), dar poate exista o functie VBA . Multumesc ! Edited by xr400, 13 July 2018 - 17:55. |
#2
Posted 13 July 2018 - 20:06

Avand o serie de puncte definesti o functie care aproximeaza acele valori( cu ce precizie vrei sau dispus sa lucrezi)
p.s. ne poti arata valorile ? |
#5
Posted 14 July 2018 - 06:38

Nu intzeleg. Poti fi mai explicit ?
Valorile sunt coordonatele unui grafic digitalizat, care grafic este oarecare . La digitalizare poti solicita orice numar de puncte. 2-300 ar fi optim. Edited by xr400, 14 July 2018 - 06:42. |
#6
Posted 14 July 2018 - 11:18

suma de diferente Riemmann: https://ro.wikipedia...
https://atelieruldem...emann.gif?w=500 Baza fiecarui dreptunghi este x[i+1] - x[i]. Ei bine X-ul tau pt fiecare dreptunghi baleiaza intre x[i] si x[i+1] al fiecarui dreptunghi. Precizia pe care o definesti decide in ce parte X-ul tau se va duce pentru fiecare dreptunghi: fie la x[i] sau x[i+1] Daca se duce catre x[i] atunci iei perechea x[i], y[i] Daca se duce catre x[i+1] atunci iei perechea x[i+1], y[i+1] Foloseste functia round(x) => https://msdn.microso....round(v=vs.110).aspx astfel: daca round(x) <= x[i] ,atunci alege perechea x[i], y[i] daca round(x) >= x[i+1], atunci alege perechea x[i+1], y[i+1] Si asta pt fiecare dreptunghi i din figura de mai sus cu i intre 1 si numarul de perechi pe care il ai Edited by WinstonMontana, 14 July 2018 - 11:20. |
#7
Posted 14 July 2018 - 12:49

Multzumesc pentru raspunsuri,
Link-ul care l-ai dat nu functioneaza Conform definitiei functiei round http://www.excelfunc...d-function.html fie rotunjeste un numar zecimal la cate zecimale hotarasti, sau rotunjeste la numarul intreg cel mai apropiat. Nu ma ajuta. X este zecimal, (X,Y) este zecimal Am crezut ca exista o scurtatura si nu o gasesc eu . O sa fac un algoritm clasic de comparat X cu fiecare pereche (X,Y), si eventual o interpolare fatza de pereche superioara, perechea inferioara cand calculez Y. Multzumesc inca odata ca v-ati uitat pe intrebare |
#8
Posted 14 July 2018 - 13:07

Multzumesc pentru raspunsuri, Link-ul care l-ai dat nu functioneaza Conform definitiei functiei round http://www.excelfunc...d-function.html fie rotunjeste un numar zecimal la cate zecimale hotarasti, sau rotunjeste la numarul intreg cel mai apropiat. Nu ma ajuta. X este zecimal, (X,Y) este zecimal Am crezut ca exista o scurtatura si nu o gasesc eu . O sa fac un algoritm clasic de comparat X cu fiecare pereche (X,Y), si eventual o interpolare fatza de pereche superioara, perechea inferioara cand calculez Y. Multzumesc inca odata ca v-ati uitat pe intrebare Am corectat linkul https://msdn.microso...(v=vs.110).aspx Edited by WinstonMontana, 14 July 2018 - 13:10. |
#9
Posted 14 July 2018 - 13:22

vezi si :
Ceil https://msdn.microsoft.com/en-us/library/zx4t0t48(v=vs.110).aspx Floor https://msdn.microsoft.com/en-us/library/e0b5f0xb(v=vs.110).aspx |
#11
Posted 14 July 2018 - 13:40

Multzumesc WinnstonMontana,
X si (X,Y) sunt numere rationale. Ceiling si Floor returneaza intregii cei mai apropiatzi. Nu ma ajuta. Scuze, nu intzeleg intrebarea MarianG Edited by xr400, 14 July 2018 - 13:41. |
#12
Posted 14 July 2018 - 13:53

pentru fiecare valoare din lista X in scazi valoarea 'X ceruta',
vei avea o listsa noua, iar perechea pe care o cauti se va afla la index-ul cu cea mai mica valoare. |
#13
Posted 14 July 2018 - 13:56

Corect MarianG,
E o varianta de algoritm. Cele mai mici 2 numere in modul sunt cele mai apropiate. Edited by xr400, 14 July 2018 - 13:56. |
#14
Posted 14 July 2018 - 14:29

daca am
lista = ((23.56,34.69),(10.98, 70.65),(32.89, 45.98),(3.45, 98.67)) X = (5.90, 34.85, 25.74)scrie ce ar trebui sa returneze algoritmul pentru cazul de mai sus Edited by WinstonMontana, 14 July 2018 - 14:29. |
#15
Posted 14 July 2018 - 14:54

X =5.9 nu are inferior si superior
X=34.85 nu are inferior si superior X=25.74 ar trebui sa gaseasca inferior (23.56 34.69) si superior (32.89 45.98) si ar trebui facuta o interpolare (25.74/ 23.56) x 34.69 rezultatul trebuie sa fie mai mare decat 34.69 cu procentul care 25.74 este mai mare decat 23.56 eu zic ca am scris interpolarea corect Edited by xr400, 14 July 2018 - 15:22. |
|
#16
Posted 14 July 2018 - 15:36

#17
Posted 14 July 2018 - 15:40

Formula corecta cu interpolarea este
(25.74-23.56) /(32.89-23.56) x(45.98-34.6) +34.69
prima data sorteaza lista dupa X 5.9 este intre 10.9 si 3.45 Corect, Pot sa scriu algoritmul Credeam ca e vreo functie de vba care nu o gasesc eu. Aceasta este intrebarea. Multzumesc |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users