Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6870763
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T03:43:23+00:00 2026-05-27T03:43:23+00:00

I created this very useful bit of code to assign variables dynamically from a

  • 0

I created this very useful bit of code to assign variables dynamically from a struct :

function getParam(param)
% this function extracts the fields of structure param and assigns them
% to variables of corresponding names in the caller workspace
allFieldsParam = fieldnames(param);
for iField = 1:length(allFieldsParam)
  assignin('caller',allFieldsParam{iField},param.(allFieldsParam{iField}));
end

The problem is that when I call getParam within a function, sometimes it works and sometimes it returns an error of the form :

??? Error using ==> assignin
Attempt to add "blocksizes" to a static workspace.
 See MATLAB Programming, Restrictions on Assigning to Variables
 for details.

    Error in ==> getParam at 7
      assignin('caller',allFieldsParam{iField},param.(allFieldsParam{iField}));

    Error in ==> classif_nmf_db at 15
    getParam(param);

Anyone has a clue how I can fix this ?

Regards
AL

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-27T03:43:24+00:00Added an answer on May 27, 2026 at 3:43 am

    This is to enforce a good programming practice in MATLAB.

    The document you are referred to is located here:
    Nested functions: Restrictions on Assigning to Variables

    The scoping rules for nested, and in some cases anonymous, functions
    require that all variables used within the function be present in the
    text of the code. Adding variables to the workspace of this type of
    function at run time is not allowed.

    MATLAB issues an error if you attempt to dynamically add a variable to
    the workspace of an anonymous function, a nested function, or a
    function that contains a nested function. …

    Loren also has a blog entry about it.


    UPDATE

    Have a look on this File Exchange submission:
    Pack & Unpack variables to & from structures with enhanced functionality (v2struct).

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm very new at this, but I need to create new tables from existing
I have created this code, and when I run it, don't get any errors
I've created this simple GUI: from tkinter import * root = Tk() def grabText(event):
So I had to create this splash page in a very short amount of
This is a very newbie question. I want to know how to create a
Apologies if this is a very basic question, but I am preparing to create
I created this program: #include <iostream> #include <fstream> using namespace std; int main ()
I created this layout of successive text input fields, 1- Enter data into empty
I've created this basic 3D Demo using OpenGL/SDL. I handled the keyboard callback so
I've created this regex (www|http://)[^ ]+ that match every http://... or www.... but I

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.