WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Zahlenerkennung fehler =(

 

alexanderdubinin
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 30.10.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2014, 15:32     Titel: Zahlenerkennung fehler =(
  Antworten mit Zitat      
Hey liebes forum, ich wünsche euch einen schönen sonntag =)

Zuerst einmal ich bin leider ein totaler matlab newbie =( !
Ich versuche mich im moment an einer zahlen erkennung. Mein Programm soll mit hilfe von templates eine zahl erkennen können. in dem beispiel an dem ich mich versuche soll das programm eine 12 erkennen. Ich habe mir als Vorlage Code genommen der die Zahlen in Nummernschildern erkennt und versucht diesen umzuschreiben.

Leider komme ich nicht nicht weiter weil er mir immer wieder einen Fehler ausgibt und ich verstehe einfach nicht was falsch ist =( ich poste euch mal eine "klasse" wo die fehler im moment immer auftreten ich hoffe das sich einer die zeit dafuer nehmen kann und mir ein bisschen weiter hilft!!

liebe grüße !!!!!!

Code:
function r=controlling(NR)

[Q,W]=hist(NR(1,2));
ind=find(Q==2);

for k=1:length(NR)          
    C_5(k)=NR(k,1) * NR(k,2);
end
NR2=cat(2,NR,C_5');          
[E,R]=hist(NR2(:,5),20);
Y=find(E==6);              
if length(ind)==1
    MP=W(ind);    
    binsize=W(2)-W(1);
    container=[MP-(binsize/2) MP+(binsize/2)];
    r=takeboxes(NR,container,2);
elseif length(Y)==1
    MP=R(Y);
    binsize=R(2)-R(1);
    container=[MP-(binsize/2) MP+(binsize/2)];
    r=takeboxes(NR2,container,2.5);  
elseif isempty(ind) || length(ind)>1
    [A,B]=hist(NR(:,2),20);
    ind2=find(A==6);
    if length(ind2)==1
        MP=B(ind2);
        binsize=B(2)-B(1);
        container=[MP-(binsize/2) MP+(binsize/2)];
        r=takeboxes(NR,container,1);
    else
        container=guessthesix(A,B,(B(2)-B(1)));
        if ~isempty(container)
            r=takeboxes(NR,container,1);
        elseif isempty(container)
            container2=guessthesix(E,R,(R(2)-R(1)));
            if ~isempty(container2)
                r=takeboxes(NR2,container2,2.5);
            else
                r=[];
            end
        end
    end
end
end


und dies ist der fehler den er mir gibt

Code:
Index exceeds matrix dimensions.

Error in controlling (line 23)
    C_5(k)=NR(k,3) * NR(k,4); % ordinate and y-width.
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 16.11.2014, 15:56     Titel:
  Antworten mit Zitat      
Die Index k erreicht einen Wert, der nicht zu den Dimensionen der Matrix NR passt.

Code:

for k=1:length(NR)          
    C_5(k)=NR(k,1) * NR(k,2);
end
 


Ich empfehle hier auch statt length
Code:

for k=1:size(NR,1)          
    C_5(k)=NR(k,1) * NR(k,2);
end
 


Arbeite mit dem Debugger und setze einen break point innerhalb der Schleife. Schau dir dann die Dimensionen von NR und C_5 an.

Edit:

Wenn ich mich nicht irre, müsste das doch aber auch ohne Schleife gehen.

Code:
C_5 = NR(:,1) .* NR(:,2);
Private Nachricht senden Benutzer-Profile anzeigen
 
alexanderdubinin
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 30.10.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2014, 17:29     Titel:
  Antworten mit Zitat      
Hey wow danke fuer die schnelle Hilfe. nun meckert er in der zeile nicht mehr. ich habe mir schon gedacht, das ich danach noch was anpassen muss habe grade den naechsten fehler mir angesehn ein paar sachen versucht aber stehe wieder auf dem schlauch =( man ey =( nun sagt er mir in dieser zeile kurz danach

Code:
NR2=cat(1,NR,C_5');


den fehler

Code:
Dimensions of matrices being concatenated are not consistent.


den fehler ansich versteh ich denk ich aber kann nich nachvollziehen wo bei mir der fehler liegt.
würdest duz mir bitte nochmal weiterhelfen ??

liebe grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 16.11.2014, 17:44     Titel:
  Antworten mit Zitat      
Du solltest dir mal die Dokumentation zu dem Befehl ansehen, dann sollte der Fehler klar werden bzw. die Fehlermeldung verständlich sein.

NR ist eine Matrix und C_5 ein Vektor

Code:

NR2=cat(2,NR,C_5);
% oder
NR2 = [NR,C_5];
 
Private Nachricht senden Benutzer-Profile anzeigen
 
alexanderdubinin
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 30.10.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2014, 18:09     Titel:
  Antworten mit Zitat      
ja das meinte ich ja :-/ die können nicht verknüpft werden weil sie nicht gleich sind =( ich haben auch schon statt der 1 ne 2 rein geschrieben aber geht alles nicht. in dem nummernschild beispiel gings aber =( wie behebe ich das denn nun Sad tut mir leid die fragerei ich bin ja dabei es zu verstehen und will auch aber manchmal grade wenn man etwas neu lernt steht man komplett auf dem schlauch =( bei den beiden code beispielen von grade gab er bei der gleichen line einen fehler aus ! ich weiss echt nicht weiter grade. bis zu der fehlermeldung hat echt alles ganz gut funktioniert :-/
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 16.11.2014, 18:18     Titel:
  Antworten mit Zitat      
Ohne die genaue Fehlermeldung und die genauen Dimensionen von NR und C_5 ist das oft recht ineffektiv mit der Hilfestellung. Präzise Fragenstellungen mit Fehlermeldung und Bsp. sind hier immer gern willkommen.

Oder hier evtl. ein Hochkomma übersehen?

Code:

% falsch
NR2=cat(2,NR,C_5');
% richtig
NR2=cat(2,NR,C_5);    
 
Private Nachricht senden Benutzer-Profile anzeigen
 
alexanderdubinin
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 30.10.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.11.2014, 15:40     Titel:
  Antworten mit Zitat      
Also der Fehler mit dem Hochkomma wars nicht, also die genaue Fehlermeldung ist:

Code:
Error using cat
Dimensions of matrices being concatenated are not consistent.

Error in controlling (line 11)
NR2=cat(2,NR,C_5);

Error in segi (line 42)
r=controlling(NR); % Function 'controlling' outputs the array of indices of boxes required
for extraction of characters.


irgendwie raff ich grade garnichts Crying or Very sad
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 17.11.2014, 16:02     Titel:
  Antworten mit Zitat      
Und die Dimension von NR und C_5 sind? Auslesen z.B. mit...

Code:


oder im Workspace nachsehen.
Private Nachricht senden Benutzer-Profile anzeigen
 
alexanderdubinin
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 30.10.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2014, 17:15     Titel:
  Antworten mit Zitat      
Also das funktioniert jetzt alles, es kommen auch garkeine Fehlermeldungen. Der Fehler, war in einer anderen Klasse. Wie gesagt ich habe jetzt Templates angelegt und es kommt keine Fehlermeldung JEDOCH kommt eine Meldung das er die Zahlen die ich aufschreibe auf dem Zettel nicht identifizieren kann, obwohl ich die 1:1 in der Template sammlung habe.
Was könnte ich falsch machen, egal wie lange ich nachdenke ich kom nicht drauf. Habe die Templates mehrmals verändert, erweitert alles aber bringt irgendwie nichts.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.