Currently I have MATLAB version 2006b and I want to upgrade it to 2017b. Can I jump directly from 2006b to 2017b ?

6 Ansichten (letzte 30 Tage)
If I directly go from version 2006b to 2017b, will it impact code and integrations? Will it work or do I need to go for verison 2010b, 2012b first and like wise?
  1 Kommentar
Steven Lord
Steven Lord am 18 Jan. 2018
Both Walter and Jan stated that there have been many changes in the eleven years between those releases. You can read about the major changes in the Release Notes. I've linked to just the Release Notes for MATLAB above, but if you use Simulink or any toolboxes you'd probably want to scan their Release Notes the same way.

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Jan
Jan am 18 Jan. 2018
Come of the built-in functions have changed their behavior since 2006b:
  • fread does not support VAX-D files anymore
  • unique and the other function concerning set have changed the preferences for indices and ordering, see the 'stable' and 'legacy' flags. The replied index vectors have changed their shape.
  • The output of strncmp('asd', 'qwe', 0) and strncmp('a', 'a', 2) changed from FALSE to TRUE (see Answers: Changes of STRNCMP)
  • dataread and strread is not longer supported
  • sum is multi-threaded now. For an input length >= 89000 the results can be slightly different due to rounding.
  • The new graphics interface HG2 has a lot of incompatibilities: No numerical graphics handles anymore, no 'EraseMode', no cross for the cursor, etc. (see the link posted by Walter)
  • S.a = 0; S.a.b = 1 fails with an error now.
  • The behavior of this has changed: S(1).a=1; S(2).a=2; c=S.a; c={S.a}.
  • fullfile('C:\', '\') replies 'C:\\' now (I did not test this in R2017b, but replaced all fullfile calls in my codes by a working version.
  • This list could be continued...
I suggest to take the time to read all lists of changes between the different Matlab version. It is a lot of work to control all source codes for potential problems. If you have an exhaustive set of unit-tests for all your functions, the checks will be much easier.
Keep the old Matlab version on your computer to compare the results of your programs. If your program run successfully on bother Matlab versions, but the results differ, this can be caused by a changed behavior of a toolbox function, or by numerical instabilities (then both results are correct).
  2 Kommentare
per isakson
per isakson am 19 Jan. 2018
"read all lists" is that the twenty+ Release Notes between R2006b and R2017b?
Jan
Jan am 19 Jan. 2018
@per: Unfortunately: yes. The list of new features, deprecated commands and changed behavior is cruel to read, but I do not see a reliable way to consider all these changes and to use the modern Matlab version efficiently. Sorry.

Melden Sie sich an, um zu kommentieren.


Walter Roberson
Walter Roberson am 18 Jan. 2018
If you install R2017b and your existing installation is R2006b, then MATLAB will ignore your existing MATLAB preferences, requiring that you re-create them. For example if you had personalized the position at which comments should be wrapped on to a new line, that information would not be carried in to R2017b. If it was important to you to have that information carried along, then you will need to install each release in turn (or at least one release per year) as MATLAB will look back a limited number of releases to find a set of preferences to upgrade.
Other than that, you would just get the normal problems with upgrading, with some routines no longer being supported and having been replaced by others (in sometimes replaced by something else still.) You might want to read the release notes for MATLAB and for any toolboxes you are using.
For most people the largest incompatibility occurred at R2014b, which switched graphics systems. The result of figure() or the other graphics operations is no longer a double(), which can lead to incompatibilities with code that assumed that you could store the handles into an existing double array.
Some people get caught by the fact that now you cannot get(figure_handle, 'Num') to get the figure number: that abbreviation 'Num' is now ambiguous and is assumed to refer to the 'NumberTitle' property rather than to the 'Number' property.
I seem to recall that Mathworks put out a tool to help convert to HG2, but I cannot seem to find a reference to that at the moment.
  3 Kommentare
Walter Roberson
Walter Roberson am 18 Jan. 2018
Bearbeitet: Walter Roberson am 18 Jan. 2018
The only reason I could come up with to not go in one step was the preferences file.
Though wasn't there an object format incompatibility around R2011b, where after a certain point some old-style objects could not be loaded ? There were two transition releases that could read the old format and write the new format, I seem to recall. This did not affect numeric arrays or cell arrays or character or struct at all, only old-style objects.
per isakson
per isakson am 18 Jan. 2018
Bearbeitet: per isakson am 18 Jan. 2018
As always, it depends. If OP has done only little customization of the desktop and doesn't have any old-style objects stored in mat-files, then my comments are good - I think.

Melden Sie sich an, um zu kommentieren.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by