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

hilfe matlab aufgabe

 

quesita

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2012, 10:02     Titel: hilfe matlab aufgabe
  Antworten mit Zitat      
hallo zusammen,

ich bin eine studentin, welche das gefühl hatte, sie sollte ein matlab seminar besuchen, und nun sitze ich hier und muss meinen leistungsnachweis erbringen, und habe keine ahnung von nichts.

die aufgabe ist es, ein gedächtnismodell zu modellieren. es gibt 9 wörter, die man lesen muss, wobei sich die gesamte Aktivierung durch diese 9 teilt. ich habe nun mal etwas programmiert, was auch läuft:

Code:
nReps = 2500; %number of replications
listLengthS = [3 4 5 6 7 8 9]; %Listenlänge für eine single Aufgabe: 3-9 Wörter
listLengthD = [2 3 4 5 6]; %Listenlänge für mit Zweitaugabe: 2-6 Wörter
Act_gesamt = 1;
minAct = .2 %minimum activation for recall
noise = .3; %standard deviation of noise on activation at recall

for wort = 1:length(listLengthS)
p = listLengthS(wort); % Welches Wort in Liste wird gerade angeschaut

correct = zeros(nReps,p); %variable for recording correctness of recall of each item; initialized to 0

for rep = 1:nReps
actVals = ones(1,p)*Act_gesamt;
actVals = Act_gesamt/p;
actVals = actVals + randn(1,p)*noise;
correct(rep,Smile = actVals > minAct;


end
propCorrect(wort) = mean(mean(correct))
end
plot(propCorrect);


doch das genügt nicht. ich muss dies jetzt noch fitten und den rmsd mithilfe des fminsearch berechnen. nun weiss ich nicht, wie ich das machen soll. ich noch ein weiteres file mit den geschätzten Daten aus einer Graphik:

Code:

% fitting Hausaufgaben

minAct = .0; %minimum activation for recall
noise = 0.3; %standard deviation of noise on activation at recall


dataS = [0.98, 0.95, 0.78, 0.64, 0.47, 0.32, 0.30]; % geschätzte Daten Single Aufgabe
dataD = [0.90, 0.81, 0.66, 0.51, 0.43]; % geschätzte Daten Dual Aufgabe (gemittelt)

startParms = [noise, minAct]; % Parameter, welche geschätzt werden sollen
[finalParms, finDiscrepancy] = PLwrapper4fminSingle(startParms, dataS);

pCor = SingleFunction(finalParms, dataS); %Funktion
 


und habe um das 1. file das ich oben rein kopiert habe noch eine funktion gemacht namens SingleFunction.
für das fmin habe ich das file:

Code:
function [x, fVal] = PLwrapper4fminSingle(startParms, dataS)

[x, fVal] = fminsearch(@bof,startParms); % @soll Badness of fit minimieren

function rmsd = bof(parms)
predictions = SingleFunction(parms,dataS);
sd = (predictions-dataS).^2
rmsd = sqrt(sum(sd)/numel(sd))
end

end


ich bekomme jetzt nur noch fehlermeldungen für alles!
ich wäre sehr froh, wenn mir irgendwer weiterhelfen könnte, da ich langsam verzweifle =(

liebe grüsse
laura


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 07.06.2012, 11:22     Titel: Re: hilfe matlab aufgabe
  Antworten mit Zitat      
Hallo quesita,

Welche Art von Hilfe möchtest Du? Eine fertige Lösung könntest Du ja nicht mehr abgeben. Also wären konkrete Fragen nach einzelnen Problemen nützlich. Dafür postest Du am besten die Fehlermeldung und den dazugehörigen relevanten Code-Abschnitt, anstatt nur zu erwähnen, das es
"nur noch fehlermeldungen für alles!" gibt. Dann ist eine Unterstützung möglich und effizient.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
quesita

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2012, 11:43     Titel:
  Antworten mit Zitat      
also ich habe nun was zum laufen gebracht, frage mich aber, ob das so richtig sein kann
das ist der erste Teil

Code:

% fitting Hausaufgaben single

minAct = .0;        % minimale Aktivierung für Abruf
noise = 0.3;        % SD noise


data = [0.98, 0.95, 0.78, 0.64, 0.47, 0.32, 0.30];  % geschätzte Daten Single Aufgabe

startParms = [minAct, noise];  % Parameter, welche geschätzt werden sollen
[finalParms, finDiscrepancy] = wrapper4fminSingle(startParms, data);

propCorrect = SingleFunction(finalParms, data); %Funktion


dann der zweite Teil beinhaltet die Funktion:
Code:

function preds = SingleFunction(startParms, data)%Funktion für Fitting

nReps = 1000;
listLengthS = [3 4 5 6 7 8 9];     %Listenlänge für eine single Aufgabe: 3-9 Wörter
listLengthD = [2 3 4 5 6];       %Listenlänge für mit Zweitaugabe: 2-6 Wörter
Act_gesamt = 1;
noise = startParms(2);        % SD noise
minAct = startParms(1);        % minimale Aktivierung für Abruf

data = [0.98, 0.95, 0.78, 0.64, 0.47, 0.32, 0.30];  % geschätzte Daten Single Aufgabe

for wort = 1:length(listLengthS)
    p = listLengthS(wort); % Welches Wort in Liste wird gerade angeschaut
   
correct = zeros(nReps,p);  % Variable, wo später drinsteht ob korrekt oder nicht korrekt erinnert, hier noch mit Nullen

for rep = 1:nReps
    actVals = ones(1,p)*Act_gesamt;
    actVals = Act_gesamt/p;
    actVals = actVals + randn(1,p)*noise;
    correct(rep,:) = actVals > minAct;      
end

propCorrect(wort) = mean(mean(correct));
end
plot(propCorrect);

preds = propCorrect;

end
 


und für die fminsearch habe ich:
Code:

%wrapper4fmin für Single Aufgabe

function [x, fVal] = wrapper4fminSingle(startParms, data)
 
[x,fVal] = fminsearch(@Hbof,startParms);
 
    function rmsd = Hbof(startParms)
        predictions = SingleFunction(startParms,data);
        predictions
        data
        sd = (predictions-data).^2;
        rmsd = sqrt(sum(sd)/numel(sd));
    end
 
end



erscheint das irgendwie logisch oder nicht?
 
quesita

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2012, 11:49     Titel:
  Antworten mit Zitat      
das heisst, wenn ich die wrapper4fmin funktion alleine laufen lasse, dann erhalte ich die fehlermeldung:

Error using wrapper4fminSingle (line 5)
Not enough input arguments.

das bezieht sich auf
Code:
[x,fVal] = fminsearch(@Hbof,startParms);


bei der SingleFunction die gleiche fehlermeldung für die linie
Code:
noise = startParms(2);        % SD noise


mir ist nicht so ganz klar, wieso diese nicht vollständig sein sollen. und die zweite frage die sich mir stellt, wiso erhalte ich trotzdem ein resultat wenn ich die fitting datei durchlaufen lasse, welche ja auf diese zwei funktionen zurückgreift?

deshalb bin ich mir nicht sicher, ob das so stimmen kann.
vielen dank schon mal für die hilfe
 
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 - 2025 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.