Daniel Skoog

Daniel Skoog

1751 Reputation

22 Badges

11 years, 343 days

MaplePrimes Activity

These are answers submitted by Daniel Skoog

You just need to use capital-M Matrix instead of 'matrix' in your code:

A := Matrix(3, 3, [-3, 2, 1, 1, -2, 1, 1, 2, -3]);

The LinearAlgebra package doesn't work with the deprecated lower case 'matrix' constructor.


This is a bug in Maple 2016.1 for which we will be issuing a fix for later this week (the fix is being tested by our QA team as we speak). The bug itself can manifest in several ways, but is usually triggered while using Greek characters Pi, Zeta, or Gamma in 2-D math and the resulting error is the same in each case. For the time being, we will be turning off the auto-update to 2016.1 and re-enabling it for 2016.1.1 when it is available. Until the update is available, we would recommend either reverting to Maple 2016.0 or using 1-D Math.

A similar issue was reported here: www.mapleprimes.com/questions/211532-Bugs-In-Parsing and is due to the same underlying issue.

In your while statement, add 'Do' around each of the components that you want to query:

while Do(%x) >= Do(%y) do

This should fix the error that you're seeing. I personally find the 'Do' command to be somewhat ambiguous, so you might also try the GetProperty and SetProperty commands to get and set the value in the text area respectively.

Using 'GetProperty' for your do while loop:

while GetProperty(x,value) >= GetProperty(y,value) do


A DataTable is really just a display layer for an underlying assigned rtable data structure (Matrix). If you right click on your DataTable and go to Component Properties, you can observe that the associated 'Variable Name' is 'DataTable0'.

You can see more about the underlying Matrix by typing in:


You can notice that this underlying Matrix has 3 rows and 3 columns.

From your code, it sounds like what you're trying to do is to grow the DataTable into a 4x4 DataTable. To do so, you actually need to first grow the underlying Matrix. Try entering in the following before your SetProperty commands:

DataTable0 := Matrix(4, 4, DataTable0);

This will turn the underlying Matrix into a 4x4 Matrix, filling in 0's around the existing 3x3 Matrix. Once you do so, the 4th row and 4th column are not shown by default. You can then proceed to programmatically alter your DataTable using the code that you have already written. I've attached a modified version of your code here: datatable_problem_1.mw

Hope this helps.

How about:

func := (y) -> map( (x) -> op(indets[flat](x, {name, constant, function})),
[`if`(hastype(y, `+`), op(y), y)] );
func( 2*t*exp(t)+2*t );

*Updated based on Preben's answer. The flat option can be removed in order to recurse through subexpressions.


Uncheck the 'Autoexpanding Sections' option found under:

View -> Sections (Maple 2015 +)

View (Maple 18 and below)

This will still evaluate any code inside of closed sections.

You can export using a selected resolution and choose a filepath using a file browser using Export[interactive] in Maple 2015 and newer. This is an undocumented option that is really just a way of calling plotsetup[maplet] for export without needing to change the default plot output device.


We have filed this as a bug with the Code Generation to Julia.

Another workaround is to export your matrix to csv instead; this would skip around the need to partition the data.

Then open the csv file in Excel and save the Excel worksheet as xlsx.


The Application Center on Maplesoft's homepage collects all user submitted packages here: http://www.maplesoft.com/applications/search.aspx?term=&rcid=1335&sa.x=7&sa.y=19

However, this is not complete by any means, as many packages are not submitted directly to the application center. There are numerous other locations on the internet that either house one or more Maple packages, potentially including the one you mentioned. Personally, I have found that searching Google for Maple and Package has provided me with some very interesting finds. To the best of my knowledge, there is no one resource for a comprehensive list of all third party (user) packages.

It looks like your default plot device is set to "char".



This should be the same as using:


If you'd like to turn the character plot back on, use:


Your code is very close. You need to add in Do around the components that you want to query. You may also want to add in a final else clause to clear the values in your textareas the query doesn't match the given values. Try the following:

use DocumentTools in 
if Do(%text_beta_degress)=1.2 then Do(%text_ps=28);Do(%text_l4=5.439);
elif Do(%text_beta_degress)=8.77 then Do(%text_ps=15);Do(%text_l4=2.785);
elif Do(%text_beta_degress)=10 then Do(%text_ps=12.83);Do(%text_l4=2.348);
elif Do(%text_beta_degress)=14.4 then Do(%text_ps=5);Do(%text_l4=0.758);
else Do(%text_ps="");Do(%text_l4="");    
end if
end use;

If you are looking for another approach that is less ambigious in terms of what input is queried than the 'Do' command, you can use SetProperty and GetProperty to query specific attributes, such as 'value' for text areas. The following will give the same results as the code above:

use DocumentTools in 
if parse(GetProperty("text_beta_degress",value)) = 1.2 then
elif parse(GetProperty("text_beta_degress",value)) = 8.77 then
elif parse(GetProperty("text_beta_degress",value)) = 10 then
elif parse(GetProperty("text_beta_degress",value)) = 14.4 then
end if;
end use;

You could try something like the following:


ts1 := TimeSeries( Sample( Uniform(0, 1), [50,3] ) );
BubblePlot( [ts1[1]], [ts1[2]], [ts1[3]] );

ts2 := TimeSeries( Sample( Normal(0, 1), [50,6] ), startdate = "2015-01-01", frequency = daily );
BubblePlot( [ts2[1], ts2[2]], [ts2[3], ts2[4]], [ts2[5], ts2[6]] );

The first example creates a new time series object with data sampled from a uniform distribution. The data is created using the Sample command and put into a 50 x 3 Matrix, where the first column and second columns correspond to the horizontal and vertical axes of the BubblePlot respectively. The third column corresponds to the size of the bubble. If you wrap this Matrix with a TimeSeries contructor call, dates are automatically added, and once this is plotted as three columns of information using BubblePlot, the resulting animation has 50 slides for one point.

The second example creates a 50x6 Matrix of random values sampled from a Normal distribution, then adds custom dates. Adding a list of pairs of columns of the time series to the BubblePlot command generates a 50 slide animation for 2 points.

Hope this helps.


You can use the plots:-display command to combine two DensityPlots:

plots:-display( Statistics:-DensityPlot( Normal( 1, 1 ), color = "Red", legend = "N[1,1]" ),

                      Statistics:-DensityPlot( Normal( 4, 1 ), color = "Black", legend = "N[4,1]" ) );

As Thomas mentioned, the help menu link to the manuals was removed in Maple 2015.

In product, you can find the index of packages by searching the help for ?index,packages

There are also links to this page from the Help Table of Contents under:

 Mathematics -> General Information -> List of Packages 

or under

System -> Libraries and Packages -> Package Index

Finally, the list of packages is also linked from under the Tools menu on the Maple interface, from:

Tools -> Load/Unload Packages -> List All Packages...
4 5 6 7 8 9 10 Page 6 of 12