Hallo,
es wird ja nicht 0, sondern +/-0.0000 angezeigt. Das kann bedeuten, das spätere Stellen durch numerische Fehler nicht genau 0 sind. Wenn du die Abfrage so anpasst, werden die Funktionen als orthogonal erkannt:
if abs(O_e(p,q)) > 1e-10
GrüÃe,
Harald
orthogonal functions
↧
↧
Animation, Zeigerdarstellung komplexe ebene
Hallo,
wenn du zwischen den Fällen Realteil = 0 oder nicht unterscheiden willst, brauchst du eine if-Abfrage. Wie du im Fall Realteil = 0 den Punkt bekommst, siehe 15:27.
GrüÃe,
Harald
↧
Argumentliste füllen mit kompakter Anweisung
Vielen Dank, Harald!
↧
Erklärung von abstrakten Methoden
Hallo Harald,
verstanden, danke.
↧
Vererbung von Eigenschaften und Methoden
Hallo Harald,
gut zu wissen.
Danke, Martinuk
↧
↧
GUI Programmatically vs. AppDesigner
Hallo Jan,
das klingt ja sehr interessant. Wärst du bereit mir deine Funktionen bereitzustellen? Ich könnte mir dadurch vermutlich sehr viel Aufwand ersparen.
↧
GUI Programmatically vs. AppDesigner
Hallo Martinuk,
Ich erstelle alle meine GUIs per Code ohne GUIDE und AppDesigner. Das hat den Vorteil, dass die GUIs mit verschiedenen Matlab-Versionen laufen, z.B. auch unter 2009a.
Man hat die volle Kontrolle über alle Elemente, dafür dann aber auch mehr Programmieraufwand. Ich habe inzwischen eine Reihe von Unterfunktionen, die z.B. das Fenster wieder an der Stelle öffnen, an der es geschlossen wurde (z.B. auch auf einem zweiten Monitor), für eine TabGroups, UITrees usw. Eine Funktion steuert die Font-GröÃe und die Anzeige-Farben, so dass man das nicht für jedes GUI wieder neu einstellen muss. Wenn man also viele GUIs erstellt, kann man sich hier viel Arbeit sparen. Bei der ersten ist dann aber der Aufwand umso höher.
GruÃ, Jan
↧
Hilfe bei Aufgabe
Harald danke für die schnelle Hilfe. Du hast recht gehabt, jetzt funktioniert alles:)
Vielen Dank
↧
Walsh-Hadamard function sequence
Hallo nochmal,
wir sollten die walshfunktion implementieren und als beispiel die Walshfuntkionen(funktionswerte) für n=0 bis 15 in eine quadratische matrix packen und anschlieÃend mit der stairs funktion darstellen.
Wie das ganze auszusehen hat, siehe beigefügtes jpg.
Leider konnte ich mithilfe der Dokumentation der Funktion noch nicht herausfinden wie man diese darstellung hinbekommt.
Wäre sehr über anregungen dankbar.
hier die function welche die walshfunction berechnet für gegebenes k und m zum auffüllen für funktion unten.
function y = swal(k,m)
k_bin = dec2bin(k)-'0';
start_e = [1];
for n=1:length(k_bin)
if k_bin(n) == 0
start_new = [start_e fliplr(start_e)];
start_e = start_new;
end
if k_bin(n) == 1
start_new = [start_e -fliplr(start_e)];
start_e = start_new;
end
end
fill_gaps = m/length(start_e);
swal_arr = [];
for n = 1:length(start_e)
swal_tmp = start_e(n)*ones(1,fill_gaps);
swal_arr = cat(2,swal_arr,swal_tmp);
end
y = swal_arr;
end
hier die function welche die quadratische matrix züruckgibt.
function y = swalsys(k)
if log2(k) ~= round(log2(k))
error('k is no two potency')
end
swal_functions = zeros(k);
for n = 1:k
swal_functions(n,1:k) = swal(n-1,k);
end
y = swal_functions;
end
GrüÃe
↧
↧
fread - bytes lesen
Hallo,
ich habe eine HW angeschlossen, die ich mit fread auslese. Ich weiÃ, dass mir die HW einen float schickt, also 4 byte.
Ist es möglich, mir die 4 Bytes in einem Vektor zu schreiben? Ich lese kontinuierlich, also dass ich dann einen Vektor bekomme, in dem die Bytes hintereinander stehen?
Liebe GrüÃe
↧
MATLAB-Code zur Laufzeit erzeugen und laden
Hallo,
ich möchte mit ode45 ein System von Differentialgleichungen lösen. Dabei soll die genaue Form und die Zahlenwerte der Konstanten dieses DGL-Systems zur Laufzeit aus externen Quellen (XML-Datei, SQL-DB) entnommen werden. Daher war mein Plan, den Code der Funktion, die als erstes Argument an ode45 übergeben wird, zur Laufzeit zu generieren. Das heiÃt also, durch MATLAB-Code eine .m-Datei schreiben zu lassen, die die besagte Funktion definiert. AnschlieÃend würde ich dann gerne diese .m-Datei dynamisch von MATLAB laden lassen.
Daher die Frage: Kann man MATLAB zur Laufzeit MATLAB-Code in Form einer .m-Datei laden lassen? Oder ist das gar nicht nötig und man kann die .m-Datei einfach in den Ordner, wo sich auch der gerade ausgeführte Code befindet, speichern und MATLAB findet die .m-Datei dann automatisch?
↧
Popupmenu-String mit Exceldateinamen füllen
Hallo zusammen,
ich habe ein ähnliches Problem was das Popup Menü betrifft, allerdings helfen mir die gefundenen Lösungsansätze nicht weiter bzw. fällt es mir schwer, diese auf meinen Fall anzuwenden und ich drehe mich hier mittlerweile im Kreis.
Es geht um folgendes:
Ich habe eine Excel-Tabelle, in welcher innerhalb einer Spalte (ab der 3. Zeile) Namen aufgelistet sind. Die Länge der Spalte und damit auch die Anzahl der Namen (sowie die Namen selbst) varriiert von Fall zu Fall. Ich habe im Guide ein Popup Fenster eingefügt und dafür über den Property Inspector eine Callback- und CreateFcn-Verknüpfung zu meiner Matlabfunktion erstellt. Den Tag des Popup habe ich "Lastfall" genannt.
Die Namen aus der Excel-Tabelle lese ich innerhalb der CreateFcn ein:
function Lastfall_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end[~,txt,~] = xlsread('\input\input_data.xlsx');
lc_name = txt(3:end,2);
set(handles.Lastfall,'String',lc_name);
Die Callback-Funktion sieht dann wie folgt aus:
function Lastfall_Callback(hObject, eventdata, handles)
% Startwert setzen
% Pop up Menü
get(handles.Lastfall,'String',lc_name);
Value = get(handles.Lastfall,'Value');
n_Lastfall = Value;
Wenn ich dann die Funktion ausführe und sich nach der Berechnung das GUI öffnet, bleibt das Popup Menü allerdings leer. Eine Fehlermeldung erscheint nicht.
Daher nun meine Frage: Weià jemand, was ich in meiner Umsetzung falsch mache? Ich habe im Property Inspector (des verwendeten Popup) das Feld für String leer gelassen, da sowohl die Namen als auch deren Anzahl wie bereits erwähnt varriiert. Muss in diesem Feld eventl. noch eine Definition eingefügt werden?
Ich hoffe ich konnte me ...
↧
Suche Koordinatenpaar mit dem geringsten Abstand
Danke für eure Antworten.
Den Tipp von Harald konnte ich bereits anwenden. Ich habe die maximalen und minimalen Koordinaten der Route ermittelt und mit Hilfe dieser die Matrix B auf 300.000 Zeilen verkürzen können.
Trotzdem bleibt mein Rechner jedes mal hängen, wenn ich die Schleife über die gesamte GröÃe der Abstandsmatrix (die ich mit dieser Schleife erstellen will) laufen lasse.
Die Matrix A habe ich zu lat_Route und lon_Route gemacht (2 Spaltenvektoren).
Die Matrix B habe ich zu Lat_column und Lon_column gemacht (2 Zeilenvektoren).
Nochmal zur Erinnerung:
Ich möchte zu jedem Punkt (bestehend aus lat und lon Koordinate) aus Matrix A einen Punkt in Matrix B (ebenfalls aus lat und lon Koordinate) ermitteln, der zum Punkt aus A den geringsten Abstand hat. Als Ausgabe bräuchte ich für jede Zeile
Hier der relevante Teil meines Codes:
%Schleife zur Erstellung der Abstandsmatrizen lat_Abstand und lon_Abstand
lat_Abstand = zeros(length(Lat_column),length(lat_reale_Fahrt)); %preallocation
lon_Abstand = zeros(length(Lon_column),length(lon_reale_Fahrt));
row=1;
column=1;
for r=1:length(Lat_column)*length(lon_Route)
if column <= length(lon_Route)
lat_Abstand(row,column) = abs(Lat_column(row,1)-lat_Route(1,column));
lon_Abstand(row,column) = abs(Lon_column(row,1)-lon_Route(1,column));
column=column+1;
else
column=1;
row=row+1;
lat_Abstand(row,column) = abs(Lat_column(row,1)-lat_Route(1,column));
lon_Abstand(row,column) = abs(Lon_column(row,1)-lon_Route(1,column));
column=column+1;
end
end
%Kombination der Abstandsmatrizen zu einem Gesamtabstand
Abstand_total = sqrt(lon_Abstand.^2 + lat_Abstand.^2);[Abstand_min Zeile ...
↧
↧
Transformationsmatrix
Hallo,
ich stehe gerade etwas auf dem Schlauch. Ich möchte eine Oberfläche transformieren. Dafür habe ich mir Landmarken auf der Ausgangsoberfläche und auf der Zieloberfläche gesucht. Nun möchte ich für diese Punkte meine Transformationsmatrix bestimmen, sodass ich x,y,z-Verschiebung und die Rotation des Objekts bestimmen.
Irgendwie tu ich mich da gerde etwas schwer kann mir da evtl. jemand helfen vielen Dank!
LG
Maxx_BMT
↧
Array nach gröÃster &kleinster Zeile durchsuchen
Danke :)
habe das gerade gebraucht, da ich eine Map mit array werten und Bezeichnungen ergo namen gemacht habe.
↧
float fread
Hallo,
ich probiere mich gerade mit der Ansteuerung eienr Hardware. Die Kommunikation usw passt alles soweit. Ich arbeite mit der BytesAvailableFcnMode = 'byte' um mir dann eine Callback Funktion aufzurufen wenn 1024Bytes vorliegen (meine Hardware sendet kontinuierlich Daten).
Innerhalb der Funktion benutze ich den Befehl fread, um Daten zu lesen. Die Daten die von meiner Hardware geschickt werden sind vom Datentyp float und immer 4 Werte. Also sollte ich pro gesendetem "Paket" 16 Bytes bekommen.
Auf MATLAB Seite lese ich folgendermaÃen aus.
Buf = 256;
formatType = 'float';
bitResolution = 32;
nf = (2^bitResolution)-1;
data = (fread(obj,Buf,formatType))./nf;
Ich habe es so verstanden, dass die Callbackfunktion aufgerufen wird, wenn 1024 Bytes im Speicher liegen (das funktioniert eigentlich auch). Die Funktion sollte also genau diese 1024 Bytes auslesen und mir 256 float-values in meinen vektor 'data' speichern.
Leider funktioniert das aber nicht. Der Wertebereich der float-values sollte irgendwie zw. 50-1000 liegen, die Daten die ich bekomme haben aber mal e-18 und mal e+28 als Wertebereich :roll: .
Kann mir jemand weiterhelfen? Ich gehe davon aus, dass das Senden der Daten von der HW zu MATLAB passt. Meiner Meinung nach müsste der Fehler beim fread liegen, dass da irgendeine Umrechnung falsch läuft.
Freue mich über Input!
GrüÃe
Vaati
↧
Mittelpunkt eines objektes ohne 'image Processing toolbox'
Hallo,
ich möchte den Mittelpunkt eines schwarzen Objektes auf weiÃen Grund finden. mir steht die 'image Processing Toolbox' nicht zur Verfügung.
Hat jemand von euch Anregungen für eine kostenfreie Funktion / Bibliothek oder eine Idee wie ich den code schreiben könnte?
Danke
↧
↧
Farbe der Beschriftung bei der Colorbar ändern
hallo zusammen,
ich habe es jetzt mit Hilfe einer Textbox gelöst, aber ich benötige ebenfalls HIlfe für den umbruch.
text(-4,15,'Speed < 100kph','Color','g','FontSize',14,'FontWeight','bold',...
'HorizontalAlignment','left','VerticalAlignment', 'bottom','Units','centimeters');
text(-4,14.5,Speed > 100kph and < 160kph','Color','y','FontSize',14,...
'FontWeight','bold','HorizontalAlignment','left','VerticalAlignment',...
'bottom','Units','centimeters');
text(-4,14,'Speed > 160kph','Color','r','FontSize',14,'FontWeight','bold',...
'HorizontalAlignment','left','VerticalAlignment', 'bottom','Units','centimeters');
Danke für eure Hlfe
GrüÃe
Thomas
↧
Anpassung von Reflexionsfaktor
Moin,
ich habe folgendes Problem:
Ich habe mittels Netzwerkanalysator die Reflexionsparameter einer Antenne gemessen.
Nun würde ich gerne ein Netzwerk aus Induktivitäten und Kapazitäten für die Anpassung der Antenne erstellen.
Hierfür suche ich eine Funktion, welche es mir erlaubt das .s1p-File einzulesen und dieses mit einem vorgeschalteten Netzwerk zu kombinieren, damit ich die dabei resultierenden Reflexionsfaktoren (S11) im Smith-Diagramm darstellen kann.
Toolboxen von Matlab sind alle vorhanden. Daran sollte es also auf jeden Fall nicht scheitern.
Mit freundlichen GrüÃen
Christian Eggers
↧
Popupmenu-String mit Exceldateinamen füllen
Hallo,
ich würde solche Befehle generell in die OpeningFcn schreiben.
GrüÃe,
Harald
↧
More Pages to Explore .....