The Math Forum

Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Math Forum » Discussions » Software » comp.soft-sys.matlab

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: how to access a value in a variable and send into a struct
Replies: 3   Last Post: Jan 2, 2013 10:02 AM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Steven Lord

Posts: 18,038
Registered: 12/7/04
Re: how to access a value in a variable and send into a struct
Posted: Jan 2, 2013 10:02 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

"sathish kumar" <> wrote in message
> "Nasser M. Abbasi" wrote in message <kbui3c$17i$>...
>> On 1/1/2013 5:29 AM, sathish kumar wrote:
>> > i want access the value of a variable 'start', iam getting error as
>> > undefined variable or function 'start'
>> > i have not defined ''start'' before this part of code,directly i am
>> > assigning value of i to the ''start'' variable
>> > here is my code
>> > for i=1:length(group)
>> > if fg >= g(i);
>> > if kg >= l(i);
>> > if max h == h(i);
>> > start = i
>> > break;
>> > end
>> > end
>> > end
>> > end
>> > do_game=cri{start};
>> >
>> > here cri=sem_de;
>> > sem_de{j}=sem;
>> >
>> >
>> > please tell me how to define a variable ''start'' in this code
>> >

>> Have you thought what might happen if you finish the above loop
>> over length(group) and the statment `start=i` is never executed?
>> What would happen in this case when you get to the line below
>> this loop which says
>> do_game=cri{start};
>> would not 'start' be undefined in this case?
>> Also, what exactly is this suppose to mean?
>> if max h == h(i);
>> And why not replace all these `if` nesting with one logical && ?
>> --Nasser

> i have not understood u r idea
> please tell me the way to define the variable ''start''
> it is must to define variable or to change the index or to use logical
> operaters

Let's take a simpler example.

for k = 1:10
if k == 345345
z = 1;
y = sin(z);

Now assuming z was not defined BEFORE that FOR loop starts, will the line of
code that defines it EVER be executed during that FOR loop's execution? Will
k EVER take on the value 345345? Since we're counting from 1 to 10 in
increments of 1, it better not! Therefore the variable z will NOT be defined
during the FOR loop's execution and when the "y = sin(z);" line executes
MATLAB will error.

To solve this, you need to determine what should happen if the conditions
that cause the line that defines start are never satisfied. To detect this,
put this line immediately before your FOR loop in your code:

start = NaN;

Immediately before the line "do_game=cri{start};" write:

if isnan(start)

and add code inside that IF statement.

Steve Lord
To contact Technical Support use the Contact Us link on

Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© The Math Forum at NCTM 1994-2018. All Rights Reserved.