Springen naar inhoud

matlab... kan dit eenvoudiger??


  • Log in om te kunnen reageren

#1


  • Gast

Geplaatst op 25 november 2004 - 21:10

Hallo;
Ik heb hier een stukje matlabcode geschreven, maar zou graag hebben dat dit zonder "eval" ook werkt.
Ik heb nog geen enkele methode gevonden om dit te doen.
Heeft er iemand een idee??
function [e,h,ploth] = rls(bestand, resultaat, kanalen, gewenst)
tic
orde = length(kanalen);
load(bestand, 'npartities')
%initialisatie
delta = 0.01;
lambda = 0.9999;
Xxxinv = 1/delta*eye(orde);
Xxxinv_adj = Xxxinv/lambda;
h = zeros(orde,1);
for i = 1:npartities
    if i < 10
        eval(['load ',bestand, '.mat string0', num2str(i)])
        eval(['stringx = string0', num2str(i),'(kanalen,:);'])
        eval(['stringd = string0', num2str(i),'(gewenst,:);'])
        eval(['clear string0', num2str(i)])
        %disp(stringx)

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2


  • Gast

Geplaatst op 29 november 2004 - 22:10

Hoi,

Ten eerste, graag de volledige functie en een omschrijving van het doel.
Tweeds, het is goede praktijk om een comment vlak onder de declaratie te zetten. Deze krijg je te zien met 'help rls'.

function [e,h,ploth] = rls(bestand, resultaat, kanalen, gewenst)
% This function calculates something

eval(['clear string0', num2str(i)])

hoeft niet, als de functie afgelopen is zijn al zijn variabelen uit scope en het geheugen wordt automatisch vrijgegeven. Ook je variabelen kun je beter een zinnige naam geven, i.p.v. Xxxinv.

Nu, de oplossing om geen eval te gebruiken (hetgeen trouwens niet verboden is, maakt alleen de code traag). De data moet in eens ingelezen worden. Daarmee ga je dan je ding doen.

Matlab Help (help load):

S = LOAD(...) returns the contents of FILENAME in variable S.  If
   FILENAME is a MAT file, S is a struct containing fields matching the
   variables retrieved.  If FILENAME is an ASCII file, S is a double
   precision array.


Succes,

S.

#3


  • Gast

Geplaatst op 02 december 2004 - 21:49

okee.
Hartelijk bedankt.

groetjes,
de lachende koe.





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures