Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
De la un proiect scris in python ...

Audi A4 B9 quattro 190 CP!

Tepari la pariuri pe TikTok

Banca imi cere justificativ fondu...
 schema pcb ELECTRA CIM150 PAS

Probleme stomac

Sfat achizitie bicicleta oras

Canalele Sky Showtime 1 și S...
 Recomandare anvelope lexus rx

Extindere rețea wireless int...

Configuratie PC

Mufa TV
 PPC Energy

Camera conferinta Tenveo tevo-vl12u

Recomandare rulouri exterioare us...

Gaoyue 858
 

Gasire X cel mai apropiat intr-un tabel (x,y) cu afisare Y corespunzator

- - - - -
  • Please log in to reply
18 replies to this topic

#1
xr400

xr400

    New Member

  • Grup: Junior Members
  • Posts: 9
  • Înscris: 13.07.2018
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
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,416
  • Înscris: 10.08.2005
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 ?

#3
xr400

xr400

    New Member

  • Grup: Junior Members
  • Posts: 9
  • Înscris: 13.07.2018
Daca am 2-300 de puncte, cum definesc functia ?

#4
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,416
  • Înscris: 10.08.2005
local pe un subset

#5
xr400

xr400

    New Member

  • Grup: Junior Members
  • Posts: 9
  • Înscris: 13.07.2018
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
WinstonMontana

WinstonMontana

    Active Member

  • Grup: Members
  • Posts: 1,913
  • Înscris: 20.02.2018
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
xr400

xr400

    New Member

  • Grup: Junior Members
  • Posts: 9
  • Înscris: 13.07.2018
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
WinstonMontana

WinstonMontana

    Active Member

  • Grup: Members
  • Posts: 1,913
  • Înscris: 20.02.2018

View Postxr400, on 14 iulie 2018 - 12:49, said:

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
Rounds a value to the nearest integer or to the specified number of fractional digits.
Am corectat linkul
https://msdn.microso...(v=vs.110).aspx

Edited by WinstonMontana, 14 July 2018 - 13:10.


#9
WinstonMontana

WinstonMontana

    Active Member

  • Grup: Members
  • Posts: 1,913
  • Înscris: 20.02.2018
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



#10
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,416
  • Înscris: 10.08.2005
cate o diferenta pe intreg sirul de X?

#11
xr400

xr400

    New Member

  • Grup: Junior Members
  • Posts: 9
  • Înscris: 13.07.2018
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
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,416
  • Înscris: 10.08.2005
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
xr400

xr400

    New Member

  • Grup: Junior Members
  • Posts: 9
  • Înscris: 13.07.2018
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
WinstonMontana

WinstonMontana

    Active Member

  • Grup: Members
  • Posts: 1,913
  • Înscris: 20.02.2018
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
xr400

xr400

    New Member

  • Grup: Junior Members
  • Posts: 9
  • Înscris: 13.07.2018
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
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,416
  • Înscris: 10.08.2005

View PostWinstonMontana, on 14 iulie 2018 - 14:29, said:

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
prima data sorteaza lista dupa X

5.9 este intre 10.9 si 3.45

#17
xr400

xr400

    New Member

  • Grup: Junior Members
  • Posts: 9
  • Înscris: 13.07.2018
Formula corecta cu interpolarea este
(25.74-23.56) /(32.89-23.56) x(45.98-34.6) +34.69

View PostMarianG, on 14 iulie 2018 - 15:36, said:

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

#18
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,416
  • Înscris: 10.08.2005
FORECAST ?
https://support.offi...e4-7ad38bbeda99

Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate