Problem using str2num/str2double

I made a matlab using str2num. When increased the load, str2num was not working. I changed str2num to str2double. I got NaN istead of getting any number. Please send me your email-id if u want me to send the .m file. But, I can't post online.

1 Comment

Please clarify what you mean by "increased the load"?
If you disp() the string that you are trying to convert, what does it show up as?

Sign in to comment.

Answers (1)

Without seeing the string you are trying to convert, there is not much advice I can give other than to check the string and see if you have any weird characters. For example, the presence of an underscore will cause problems similar to what you describe:
>> test = '3_5';
>> str2num(test)
ans =
[]
>> str2double(test)
ans =
NaN

5 Comments

Shivani Rani
Shivani Rani on 16 Sep 2015
Edited: Shivani Rani on 16 Sep 2015
Thanks for the reply. Basically, I am using a .m file to process the output results at nodes and in elements. Str2num function has been used to covert the string into number. That file is working with smaller amount of load, i.e. 200. The same file was not working for 1000 or 1000s load. I changed str2num to str2double, the file run. However, I was getting all NaN values. I did not change anything else. There is no underscore problem.
What does "load" mean in this context? Is it the number of rows in the file? Is it the number of lines in the file? Is it the size() of a cell array of strings?
When you say that it is not working, what do you see when you try with the higher "load" ?
Load is a variable. Basically, I am using Matlab to process the output files. Here, I run the same pavement model with different loads and process the output file. At smaller load (vertical load), the file run; however, at the higher value of load, the same file is giving the problem (see below):
>> Subscripted assignment dimension mismatch.
Error in createOUTfilesStat (line 68) Lineelem(j2-6,:) = str2num([Lineelem1 Lineelem2]);
Error in MainMatlab_DSC (line 27) [Elem_out, Node_out] = createOUTfilesStat(finput,Nnode,4*Nelem);
>>
Time to learn how to use the debugger.
Give the command
dbstop if error
and run your program. When it halts with this error, ask
disp([[Lineelem1 Lineelem2])
size(str2num([Lineelem1 Lineelem2]))
size( Lineelem(j2-6,:) )
Thank you very much for your help. I figured out the problem in my file. At higher loads, two values got merged (no space in between) in my output text files. So matlab could not read those number correctly and hence, I was getting dimension mismatch error.

Sign in to comment.

Categories

Asked:

on 12 Sep 2015

Commented:

on 24 Sep 2015

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!