+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Membre émérite Avatar de tubaas
    Homme Profil pro Mathieu Martinez
    Acousticien
    Inscrit en
    août 2009
    Messages
    641
    Détails du profil
    Informations personnelles :
    Nom : Homme Mathieu Martinez
    Âge : 29
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Acousticien
    Secteur : Industrie

    Informations forums :
    Inscription : août 2009
    Messages : 641
    Points : 837
    Points
    837

    Par défaut [fminsearch][Error] Conversion to double from struct is not possible.

    bonjour
    j'ai une courbe de référence refCurve et une courbe mesurée lrMean.
    la fonction ecart me permet de mesurer l'écart entre les deux.
    j'aimerais translater la courbe de référence afin de minimiser cet écart, donc ajouter une valeur fixe à l'ensembles des points de la courbe mesurée.
    pour ceci j'ai pensé à utiliser la fonction fminsearch mais elle me renvoie une erreur :
    Code :
    fminsearch(@(y) ecart(refCurve,absc,lrMean+y,0),-10);
    ??? The following error occurred converting from struct to double:
    Error using ==> double
    Conversion to double from struct is not possible.

    Error in ==> fminsearch at 205
    fv(:,1) = funfcn(x,varargin{:});
    merci si vous pouvez comprendre d'où peut venir le problème

  2. #2
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : janvier 2006
    Messages : 1 717
    Points : 1 829
    Points
    1 829

    Par défaut

    Quel est le type et la taille de :

    refCurve et lrMean
    Assigning to an Empty Structure Field

    Attempting to assign a structure to a field of another structure now results in an error if both of the following conditions are true:

    • The field being assigned to has been initialized to an empty matrix.
    • The field being assigned to is referenced in the assignment using an array index.

    For example:

    • mystruct.emptyfield = [];
      mystruct.emptyfield(1) = struct('f1', 25);
      ??? Conversion to double from struct is not possible.

    This operation did not return an error in previous versions of MATLAB.
    Les règles Les cours La fonction rechercher

    N'oubliez pas de mettre en et de voter.

    La terre n'est pas un héritage de nos parents, mais un emprunt que nous faisons à nos enfants. La protection de notre environnement est la responsabilité de tous. Ne reculez plus devant l'urgence, agissez !

  3. #3
    Modérateur

    Inscrit en
    août 2007
    Messages
    4 323
    Détails du profil
    Informations forums :
    Inscription : août 2007
    Messages : 4 323
    Points : 6 228
    Points
    6 228

    Par défaut

    Salut,

    Je pense que ton problème vient du 'lrMean+y' que tu passes en entrée de ta fonction. Essaie comme cela :
    Code :
    fminsearch(@(y) ecart(y,refCurve,absc,lrMean,0),-10);
    et modifie ta fonction ecart en conséquence.

  4. #4
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : janvier 2006
    Messages : 1 717
    Points : 1 829
    Points
    1 829

    Par défaut

    When I run the following command:

    property = blkproc(glcmPixel, [9 9], @(e) graycoprops(e());

    I get the following error:

    ??? Conversion to double from struct is not possible.

    Error in ==> blkproc at 150
    b(brows, bcols) = firstBlock;

    How can I fix it?

    Thanks.

    nrowb = size(glcmPixel,1) / 9;
    ncolb = size(glcmPixel,2) / 9;
    blocks = mat2cell(glcmPixel, repmat(9, 1, nrowb), repmat(9, 1, ncolb));
    property = cellfun(@(e) graycoprops(e(), blocks);
    > When I run the following command:

    > property = blkproc(glcmPixel, [9 9], @(e) graycoprops(e());

    graycoprops expects as input the N x N matrix (default 8 x 8)
    that results from graycomatrix. You aren't giving it that
    complete matrix: you are giving it the column-wise unraveling of
    the matrix. The resulting statistics are likely to be meaningless.

    Also, as the default output for graycomatrix is 8 x 8, it would
    very likely be an error to be applying graycoprops to a 9 x 9
    matrix -- unless you had specifically used 'NumLevels', 9
    in the graycomatrix call.

    My previous response in this topic copied your function behaviour
    rather than giving what would be more likely the correct behaviour.
    The code that would be more likely correct would be:

    nrowb = size(glcmPixel,1) / 8;
    ncolb = size(glcmPixel,2) / 8;
    blocks = mat2cell(glcmPixel, repmat(8, 1, nrowb), repmat(8, 1, ncolb));
    property = cellfun(@graycoprops, blocks);
    Les règles Les cours La fonction rechercher

    N'oubliez pas de mettre en et de voter.

    La terre n'est pas un héritage de nos parents, mais un emprunt que nous faisons à nos enfants. La protection de notre environnement est la responsabilité de tous. Ne reculez plus devant l'urgence, agissez !

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •