Verfasst am: 28.09.2009, 16:16
Titel: Programmierung mit C#
Hallo zusammen,
Ich hab wärend einem Praktikum mit Matlab programmiert, was ich sehr toll fand hab die Programme auch schön aufgehoben.
Wärend der Zeit hab ich in der Matlab Hilfe was darüber gefunden, das man auch Matlab in C# einbinden kann. Nun da ich in der Schule damit programmiere, wollte ich das gerne machen, ich weiß nur leider nicht mehr den Befehl oder die Befehle und Syntaktik dafür.
Google hilft leider auch nicht wiklich, da ich mich mit dll ond/oder sowas nicht auskenne und ich nicht weiß, ob ich die laden muss.
Ich möchte halt, das der Compiler mit C# arbeitet und dann den Matlab-Code ausführt und ich so sachen ausgeben kann.
Ich hoffe, das mir einer von euch etwas mehr erfahrenden Programmierer helfen kann.
Gruß Lukas
hier hilft der Builder NE (for .NET). Siehe
http://www.mathworks.de/products/netbuilder/
Der MATLAB code wird in .NET Objekte gekapselt, die dann von C# aus aufgerufen werden können.
Also das meine ich, vielen Dank das du es gefunden hast.
Aber wie kann ich das ohne Matlab nutzen?
Ich hab das ja nicht auf meinem Rechner, da ich nur damit mal gearbeitet habe?
wenn du MATLAB nicht hast, dann muss jemand, der MATLAB und eine MATLAB Builder NE Lizenz hat, eine .NET - Komponente für dich erzeugen. Die kannst du dann einbinden. Ganz ohne geht es nicht.
Gut... Kann mir dann einer ein paar Zeilen Code in eine .Net Kompatieble Version umspeichern / umwandeln
Hier der Code Fehlerfrei:
Code:
%Zum erstellen von Stochhastichgekoppelten Transformationen...
function[statistik] = zeichne_gleichung(Anzahl, drehspiegel, phi, faktor, r1, r2, b1, b2)
%Diese Formel kann unter den richtigen Bedingungen einen Farn zeichnen oder ein anderes Bild
x=new_random(0,1);
y=new_random(0,1);
Iterationen=50000;
%Umrechnung von grad in rad
phib=phi.*pi./180;
%Drehfaktor
spiegdreh(1,1)=1;
spiegdreh(1,2)=0;
spiegdreh(2,1)=0;
spiegdreh(2,2)=-1;
%Errechnung der Tabelle und multiplikation mit dem Drehfaktor.
for i=1:Anzahl
A(i,1,1)=faktor(i)*r1(i)*cos(phib(i));
A(i,1,2)=-faktor(i)*r2(i)*sin(phib(i));
A(i,2,1)=faktor(i)*r1(i)*sin(phib(i));
A(i,2,2)=faktor(i)*r2(i)*cos(phib(i));
if drehspiegel(i)==2
B=[A(i,:,1)
A(i,:,2)]';
B=spiegdreh*B;
A(i,:,:)=B;
end end
statistik(Anzahl)=0;
%Ausrechnung der Punkte
for i=2:Iterationen
zahl=new_random(0,1);
untergrenze=0;
obergrenze=1/Anzahl;
%Neue Zufallszahl die zwischen 0 und 1 liegt.
for n=1:Anzahl
if untergrenze <= zahl && zahl <= obergrenze
zahl=n;
statistik(zahl)=statistik(zahl)+1;
break;
else
untergrenze=obergrenze;
obergrenze=obergrenze+1/Anzahl;
end end
%Errechnung der neuen X- und Y-Werte
x(i)=A(zahl,1,1)*x(i-1)+A(zahl,1,2)*y(i-1)+b1(zahl);
y(i)=A(zahl,2,1)*x(i-1)+A(zahl,2,2)*y(i-1)+b2(zahl);
end
statistik=statistik.*100./(Iterationen-1);
%Ausgeben der Werte in einer Figure in mit einer Zufallsfarbe Farbe
figure() plot(x,y,'.','MarkerSize',3,'Color',[new_random(0,1) new_random(0,1) new_random(0,1)]) end
%Erstellen einer Zufallszahl in einem bestimmten bereich
function[ausgabe] = new_random(untergrenze,obergrenze)
x=rand;
ausgabe = x * (obergrenze - untergrenze) + untergrenze;
Ich danke dem jenigen, der mir das richtig zukommen lassen kann...
Danach, kontatkiere ich wahrscheinlich denjenigen nochmal, damit er mir noch 3 ~bis ca. 4 weitere Funktionen umwandeln lassen kann
Was geht: Mit MathWorks zusammen arbeiten um herauszufinden ob das Produkt schon im Unternehmen / an der Hochschule existiert und dann lokal zusammen arbeiten.
Was nicht geht: "Application Service Providing", also Code "über den Zaun werfen" und als Dienstleistung eine Komponente zurück zu bekommen.
Also ich hab diesen Code selber nach einer Vorlage geschrieben in Matlab,
diesen Code Will ich nun verwenden um ein eigenes C#-Projekt zumachen, was mit diesem Code arbeiten kann.
Da aber so wie ich nun erfahren habe das nicht so einfach geht, bzw. Ich nicht genau weiß, wie ich in C# aufwendigere Bilder zeichnen lassen kann, wollte ich halt meine alten Programme dafür nutzen.
Dein Fall ist sehr sehr grenzwertig hier im Forum.
Du möchtest gern dass jemand anderes seine MATLAB Lizenz dafür nutzt um Dir etwas zu erstellen. Aber selbst hast du weder eine MATLAB Lizenz, noch das benötigte Paket für Deine Anfrage.
Ich denke es ist verständlich dass solch eine Anfrage teilweise gegen die Lizenzvereinbarung von MATLAB verstößt.
Darum werde ich das Thema jetzt lieber schließen.
Wünsch Dir trotzdem viel Glück bei Deinem Problem.
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.