Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

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


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

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: 17,944
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" <satty634@gmail.com> wrote in message
news:kc0r0r$8t5$1@newscl01ah.mathworks.com...
> "Nasser M. Abbasi" wrote in message <kbui3c$17i$1@speranza.aioe.org>...
>> 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;
end
end
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)
% HANDLE NONSTART CASE
end

and add code inside that IF statement.

--
Steve Lord
slord@mathworks.com
To contact Technical Support use the Contact Us link on
http://www.mathworks.com




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

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.