INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Programm von MatLab inLabVIEW übersetzen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

18.11.2009, 19:15
Beitrag #1

Peterxxx Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Nov 2009

8.6
2009
de

71229
Deutschland
Programm von MatLab inLabVIEW übersetzen
Hallo zusammen,

ich bin absoluter Anfänger in LabVIEW und soll den folgenden Code in LabVIEW übersetzen. Allerdings hatte ich noch nie mit LABView zu tun.Sad

Der Code sieht folgender aus:
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>
[N, NS]=size(data)
dt=1/f_at
Nt_start=floor(t_start/dt)
Nt_end=floor(t_end/dt);
Time=dt*NS
Deltaf=1/Time
p0=2e-5;
rho=1.2;
c0=340;
ddx=0.1
obereGrenze=2*pi/(ddx);
theta2 =1e-2;
DDX=0.04;
dfx=DDX;
dfy=DDX;
%############### Ende Eingabe ######################
%###############
[N P]=size(Koo);
xn(1:N)=Koo(1:N,1);
yn(1:N)=Koo(1:N,2);
N = length(xn);
rn=[xn',yn',zeros(N,1)];

%####################
Fz(1:N,1:NS)=0;
w=hamming(NS); %Gewichtsfunktion
NW=sum(w);
for n=1:N
for m=1:NS
xs(n,m)=data(n,m)*w(m);
end
end
for n=1:N
Fz(n,Smile=fft(xs(n,Smile); %FFT berechnen
end

Fz=Fz/NW;
%####################
Nx=floor((right-left)/DDX)+1;
Ny=floor((top-bottom)/DDX)+1;
dfx=DDX;
dfy=D
%####
d1=DF;
for k=1:Ny
for l=1:Nx
n=l+(k-1)*Nx;
x(n)=left + dfx*(l-1);
y(n)=bottom + dfy*(k-1);
end
end

M = length(x);
z = -d1*ones(M,1);
% ####
p(1:M)=0;% = zeros(M,1);
uz(1:M)=0;% = zeros(M,1);
%##################################################################

%#############################
over=4;
Lmx=max(xn)-min(xn);
Lmy=max(yn)-min(yn);
dkx=2*pi/(over*Lmx);
dky=2*pi/(over*Lmy);
NKx=floor(obereGrenze/dkx)+1;
NKy=floor(obereGrenze/dky)+1;
for k=1:NKy
for l=1:NKx
n=l+(k-1)*NKx;
KX(n)=-obereGrenze/2 + dkx*(l-1);
KY(n)=-obereGrenze/2 + dky*(k-1);
end
end
%#####################################################################
%##########################
for f=f_low:10:f_high;
lambda = c0/f;
k0 = 2*pi/lambda;
omega=2*pi*f;
%#########################################
Frequ=floor(f/Deltaf)+1;
prn=zeros(N,1);
prn(1:N)=Fz(1:N,Frequ);
Mk=size(KX);

%#####
for n=1:N
for k=1:Mk(2)
K2=KX(k)^2+KY(k)^2;
if K2 < k0^2
KZ(k)=sqrt(k0^2-K2);
A(k,n)=exp(-sqrt(-1)*(KX(k)*xn(n)+KY(k)*yn(n)+KZ(k)*DF ));
else
KZ(k)=sqrt(K2-k0^2);
A(k,n)=exp(-sqrt(-1)*(KX(k)*xn(n)+KY(k)*yn(n))-KZ(k)*DF );
end
end
end

AhA=A'*A;
Ann=AhA(1,1);
AhA=AhA+Ann*theta2*eye(N);
invAhA=inv(AhA);
%######################################################################

%#### ################################
for n=1:M
for k=1:Mk(2)
K2=KX(k)^2+KY(k)^2;
if K2 < k0^2
KZ(k)=sqrt(k0^2-K2);
alfa(k,n)=exp(-sqrt(-1)*(KX(k)*x(n)+KY(k)*y(n)+KZ(k)*(z(n)+DF) ));
beta(k,n)=+KZ(k)*alfa(k,n)/(rho*omega);
else
KZ(k)=sqrt(K2-k0^2);
alfa(k,n)=exp(-sqrt(-1)*(KX(k)*x(n)+KY(k)*y(n))-KZ(k)*(z(n)+DF) );
beta(k,n)=-sqrt(-1)*KZ(k)*alfa(k,n)/(rho*omega);
end
end
end
Aha=A'*alfa;
Ahb=A'*beta;
c = invAhA*Aha;
b = invAhA*Ahb;
%#######################################################################
p = p + prn.'*c;
uz = uz + prn.'*b;
%##### z-Komponente der Intensität ##################################
end
%Umsortieren
p0=2e-5
for k=1:Ny
for l=1:Nx
m=l+(k-1)*Nx;
result(l,k)=abs(p(m));
end
end
</div>

Beispielsweise habe ich jetzt schon einige Zeit gesucht und keine "Übersetzung" für den Befehl length(x) gefunden. Was wäre den das entsprechende Symbol in LabVIEW?
Wie erstell ich denn am kompaktesten die Schleifen?

Würde mich sehr über eine Antwort freuen.

Grüße
Peter

PS: Ich soll keine Express-VIs verwenden.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
18.11.2009, 20:05
Beitrag #2

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Programm von MatLab inLabVIEW übersetzen
' schrieb:Beispielsweise habe ich jetzt schon einige Zeit gesucht und keine "Übersetzung" für den Befehl length(x) gefunden. Was wäre den das entsprechende Symbol in LabVIEW?

In der array Palette gleich das erste.

' schrieb:Wie erstell ich denn am kompaktesten die Schleifen?

Was meinst du mit kompakt? Es gibt wie überall For- und While-Schleifen. Wenn du ein array hast und die Schleife so oft durchlaufen soll wie das array Elemnte hat benutzt du einfach die Autoindizierung. Dann sparst du dir das "length(x)". Ist ziemlich kompakt.

' schrieb:PS: Ich soll keine Express-VIs verwenden.

Das ist ein sehr guter Vorsatz!



Den ganzen Code hier zu posten ist überflüssig, denn den wird dir niemand übersetzen. Du musst selber anfangen und bei konkreten Problemen kannst du hier nachfragen.

Lese dich ein bisschen ein. Hier habe ich ein paar pdf-Dokumente gepostet, die dir vielleicht weiterhelfen. Beitrag #5.


Gruß dimitri

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.11.2009, 23:11
Beitrag #3

chrissyPu Offline
LVF-Stammgast
***


Beiträge: 467
Registriert seit: Jun 2006

2014 PDS
2006
DE_EN

64283
Deutschland
Programm von MatLab inLabVIEW übersetzen
Hi,

ich weiß nicht, was Du mit "übersetzen" meinst, aber LabVIEW hat sowohl matlab- als auch Mathscript-Knoten. Letzteres müsste eigentlich für Deinen Fall gehen (bin aber nur so drüber geflogen)... Dann brauchst du auch keine Matlab-Lizenz für den etnsprechenden Knoten...

Grüße,

ch
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.11.2009, 07:19
Beitrag #4

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Programm von MatLab inLabVIEW übersetzen
' schrieb:ich bin absoluter Anfänger in LabVIEW und soll den folgenden Code in LabVIEW übersetzen. Allerdings hatte ich noch nie mit LABView zu tun.Sad

Ich nehme an, du sollst den Code mit LV-Mitteln nachbauen...dazu musst du den Matlab-Code erst mal verstehen und analysieren...und dann Stück für Stück aufbauen! Wenn du noch nie mit LV zu tun hattest, könnte das ein bisschen dauern...einfach, weil sich die Programmierkonzepte unterscheiden...

Du kannst dir im LV-Example Finder aber z.B. mal das Beispiel "Building Arrays.vi" (Suche nach "FOR") anschauen, um dir die Verwendung von For- und While-Schleifen klarzumachen!

Gruß
Achim

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.11.2009, 08:25
Beitrag #5

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Programm von MatLab inLabVIEW übersetzen
Würde Dir gerne helfen, hatte aber mit Matlab seit 6 Jahren nichts mehr zu tun und damals habe ich es nur bei 4 Laborterminen im Rahmen meines Studiums mal angeschnitten, d.h. ich habe so gut wie keine Ahnung (mehr) von Matlab. Du solltest in Worten sagen, was Du umsetzen möchtest und dann kann man Dir helfen. Den Matlab-Code verstehe ich auf die Schnelle nicht und zum Einarbeiten habe ich gerade keine Zeit, keinen Bedarf und auch keine Lust. Wink

Gruß Markus

' schrieb:ich bin absoluter Anfänger in LabVIEW und soll den folgenden Code in LabVIEW übersetzen. Allerdings hatte ich noch nie mit LABView zu tun.Sad

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.11.2009, 08:47 (Dieser Beitrag wurde zuletzt bearbeitet: 19.11.2009 10:15 von dimitri84.)
Beitrag #6

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Programm von MatLab inLabVIEW übersetzen
' schrieb:Den Matlab-Code verstehe ich auf die Schnelle nicht und zum Einarbeiten habe ich gerade keine Zeit, keinen Bedarf und auch keine Lust. Wink

floor: rundet nach unten
' ist das selbe wie transpose
wenn ein . hinter dem Vektor steht, dann geht die Rechenoperation elementweise von statten
ein : als Index heißt "laufe alle Elemente durch"

Rest ist selbsterklärend Wink



Im übrigen wäre ein Satz dazu was der Code überhaupt machen soll nicht schlecht. Einige Variablen sind auch vorher nicht definiert ... ich nehme an die muss der Benutzer dann im m-file selbst eintragen. Und was steht in data?


Gruß dimitri

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.11.2009, 09:27
Beitrag #7

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Programm von MatLab inLabVIEW übersetzen
' schrieb:Rest ist selbsterklärend
Aus das hier?
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.11.2009, 09:32
Beitrag #8

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Programm von MatLab inLabVIEW übersetzen
' schrieb:Aus das hier?
[attachment=50826:clip000.png]
Jaja, die Forensoftware..., die macht aus Doppelpunkt-Klammer zu das entsprechende Smiley-Icon: : ) =Smile

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.11.2009, 09:40
Beitrag #9

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Programm von MatLab inLabVIEW übersetzen
' schrieb:[attachment=50826:clip000.png]

Die Code nimmt sich halt selber nicht so ernst...Tongue

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.11.2009, 15:31
Beitrag #10

Peterxxx Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Nov 2009

8.6
2009
de

71229
Deutschland
Programm von MatLab inLabVIEW übersetzen
Ich weiß ehrlich gesagt auch noch nicht für was das Programm gut sein soll. Das primäre Ziel ist erstmal die "übersetzung" und dann wird sich der rest schon ergeben.

Die Werte, die nicht definiert sind werden duch eine externe Schnittstelle übergeben. Z.B. Messeinrichtung.

Der Code läuft bereits in Mathscript, allerdings soll durch die Übersetzung eine schnelle Berechung erfolgen und somit die Wartezeiten reduziert werden.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Frage zu MATLAB script Lucki 5 5.618 15.08.2018 15:14
Letzter Beitrag: th13
  Matlab Funktionsumfang in Labview Vaati 2 4.615 29.02.2016 20:15
Letzter Beitrag: GerdW
  Matlab N-dim Matrix Vaati 4 4.594 26.02.2016 19:11
Letzter Beitrag: Vaati
  Matlab Skript einbinden LabViewPete 4 5.968 02.09.2015 11:34
Letzter Beitrag: LabViewPete
  Matlab in LabVIEW programmieren Carpediem47 1 4.210 17.09.2012 12:57
Letzter Beitrag: B033el
  InLabVIEW Anzeige Elemente zu einem SubVI zusammenfassen Florian_TU-BS 11 14.240 10.08.2010 14:36
Letzter Beitrag: jg

Gehe zu: