Daniel Skoog

1116 Reputation

15 Badges

6 years, 176 days
Maple Product Manager

Social Networks and Content at Maplesoft.com

Maple Application Center
Daniel Skoog is a Product Manager for Maplesoft. He holds a B.Sc. in Mathematics from Queen’s University, Canada and a M.Sc. in Financial Mathematics from Uppsala University, Sweden. Daniel joined Maplesoft in 2011 and has used his applied technical expertise of mathematics, statistics, data analysis and software design to deliver several exciting new releases. Daniel has also contributed several commands to the Maple library, having authored new routines in Statistics, Finance and data analysis.

MaplePrimes Activity

These are answers submitted by DSkoog

The one big difference between workbooks and package workbooks is that package workbooks have a saved module in them. If a workbook does not have a saved module (i.e. your package), the option to upload it to the MapleCloud packages group as a package will not appear.

In order to make your workbook into a package workbook, open it, load your package module (either read it in from a text file or execute it from a worksheet in the workbook, then use the savelib command to add it to the workbook.

You can do so by running:

savelib( 'YourPackageName', "this://");

After that, save the workbook again and try to upload it - you should now have the ability to add it to the MapleCloud packages group.

I hope that helps - let me know if you have any questions.

The built-in country dataset isn't really meant to be viewed in its entirety - there's simply too much information there (126 columns by185 rows with each entry itself containing a TimeSeries (or other) data structure. A better approach is to query the data set for the specific subset of data that you want and then convert those results to something that's more easy to read.

For example, try:

data := DataSets:-Reference("Builtin","Country");
convert(data[1..3,1..3], Matrix);


This may be a bit too generic, so you can also query the dataset using the country names and the variables that you would like to see more about:

convert(data[["Canada","Sweden"],["Population","CPI Change"]], Matrix);


Once this is in Matrix form, if you need to exceed the default 10x10 display limits, you can also set interface(rtablesize) to something greater than 10.

Any content uploaded to the MapleCloud is subject to the MapleCloud Terms of Service: http://www.maplesoft.com/cloud/terms.aspx

You should read through it carefully to ensure that you are comfortable with it before uploading anything. If you are unsure about anything in the terms of service, you should definitely consult with a representative that is knowledgable about IP law for your region.

I'll also mention that I'm not a lawyer and that any of my comments are not "official" Maplesoft comments. Personally, I would pay close attention to the "Use of service by you" and "Proprietary rights" sections. Specifically, in the former section, it lists: "Users are responsible for any copyright pertaining to the content they post." To me, this reads as whatever content you upload, you should include a disclaimer or copyright notice that tells users that you are sharing your content with a license which includes attribution - i.e. they need to mention you if they are using your work. If you haven't done so already, you might also read up on creative commons licenses (or other common license frameworks) and determine what license you are most comfortable sharing your work under.

I hope that helps.

This is actually expected behaviour (though I can see how you would have reached your conclusion).

The reasoning is that when you use "Save As" on an existing Workbook, you are renaming the Workbook file on disk, not the files that it contains; the Workbook is really just a container for its content. This is probably somewhat confusing because on first Workbook creation, the worksheet that you "Save As" into a Workbook automatically gets assigned to the same name as the Workbook (rather than being untitled). Perhaps we should modify this behaviour to save the Workbook and put the cursor into editing the name of the worksheet that is now a file inside of the Workbook.

So then, since "Save As" does not affect the internal filenames inside the Workbook, that's why you'll still have the same filename inside of the Workbook, but the originating filepath (the Workbook name) will have changed.

We did spend some time considering this use case and did determine that it was risky to throw away any of the internal filenames on "Save As". We felt that adding the ability to manually change attached filenames via the Workbook navigator was the best path to fixing any of these concerns.

I hope that clarifies the behaviour. If you have any other concerns or feedback on Workbooks, please feel free to post those here or to contact us directly at support (at) maplesoft.com

There isn't a command like Student:-Statistics:-ProbabilityTable or Student:-Statistics:-CriticalTable that does this automatically, but it's relatively easy to built it. Here are two examples:

First, we declare a function to generate values for the inverse CDF of the standard Normal distribution:

INVCDF := x -> Statistics:-Quantile(Normal(0,1), x):


The first way of doing this is by using a uniform range of values from 0.50 to 0.99.

Here's a nicely displayed DataFrame that prints out the values (this matches most closely to the table generated by the ProbabilityTable command):

df := DataFrame(Array([seq([seq(INVCDF(i+j), i=0.00..0.09, 0.01)], j=0.5..0.9, 0.1)]),
                         columns=[seq(0.00..0.09, 0.01)], rows=[seq(0.5..0.9, 0.1)]):


Note that I've set the display precision to 4 in order to clean up the displayed table.


In a later post, the OP gives a link to another version of this table that adds in some other values (0.991 to 0.999, and 0.975). Here's an alternative version that will include those values:

values := Array([op({seq(0.50..0.99, 0.01), seq(0.991..0.999, 0.001), 0.975})]):
values := ArrayTools:-Reshape(values, [10,6]):
DocumentTools:-Tabulate(<seq(op([values[..,i], INVCDF~(values[..,i])]), i=1..6)>^%T, interior=none):


This uses the DocumentTools:-Tabulate command (rather than the DataFrame's Tabulate export) and prints the same as the requested table.

Hope this helps.

The only way to display annotations on plots (as of Maple 2016) is by using the point probe: http://www.maplesoft.com/support/help/Maple/view.aspx?path=worksheet/plotinterface/pointprobe

Since you mentioned "information", I'm guessing that you are looking for more than just cursor position or nearest point coordinates though, which is something that is not currently possible, but would make a nice addition in a future release.

Numeric Formatting is only a display layer, so you don't need to worry about any loss of precision in your computations.

To turn it off (or on), put your cursor somewhere in the document block containing your computations and go to the Format menu and choose Numeric Formatting. Set it to None and Apply it.

If it keeps reappearing, then you may have clicked Apply and Set as Default, which means to turn it off, you have to repeat these steps but choose None and Apply and Set as Default.

One more note about numeric formatting, as you can see in your picture, numeric formatting is applied to all lines in a document block. If you wanted to use numeric formatting on only one line, you would need to separate your code into separate document blocks (lines) and then apply the desired numeric formatting.

Hope that helps.

Maple 2017 is currently in beta, so you will hopefully see it in a few months time.

I think that the issue here is actually a collision between the MTM:-solve command and the top-level solve command. I was able to reproduce this issue by entering in:

5*x - 3 = 19

Then right-clicking on the 5*x-3=19 expression and choosing Solve from the Solve menu. The problem here is that the context menu code calls:

MTM:-solve( {5*x-3=19} );

which errors out, whereas it should call:

:-solve( {5*x-19} );

which would return the intended solution.

One quick workaround for this is then to not load the MTM package before you use the context menu operation.

I'll file an internal report on this to see if we can improve this.

The writeto command writes output from any subsequent run commands, however the results of running showstat aren't strictly speaking output.

So instead, you can use the print command to print out your procedure. If you are interested in printing the body of any of Maple's library procedures, you will need to adjust the interface setting for verboseproc to 2:

interface( verboseproc = 2 ):

You can print out the results to your file as follows:

MyProc := ( ) -> "Hello World";
writeto( "MyFile.txt" );
print( MyProc );

Also remember if you want to stop writing to the file and write to Maple again, you can use:

writeto( terminal );

Hope that helps.

Here are some more details on connectivity for Maple and Excel: https://www.maplesoft.com/products/maple/features/ExcelConnectivity.aspx 

Maple uses the default worksheet styleset for documents unless you have specifed a custom style set in the style set dialog.

Now that said, the steps that you take to set your custom style set are correct as mentioned ( select a custom style set as your "User-defined Style Set" in the Style Sets dialogue ), however the other issue that you are seeing, namely that Maple always uses italic for math is in fact a bug. There is unfortunately no workaround for this (as you have already discovered by editing the xml). Hopefully we can get around to fixing it sometime soon.

To answer another question, the default style set that Maple uses for both its documents and help pages can be found in the %MAPLEINSTALLDIR/data/stylesets/ directory.

The try statement is used for exception handling, for example:

    print("Error occurred"):
end try:

If you have a network license, I believe that there are (for cost) tools available from Flexera (the maker of LMTools, Maple's license manager) for reporting on license usage. Otherwise, you can also have your system adminstrator manually go through your lmgrd logs.

If you are looking to retrieve the document meta-data, try the DocumentTools:-GetDocumentProperty command. 

If you want to get the document properties for the document you are currently in, use:


Just in case anyone else is interested, you can set document properties in a couple of ways:

If you have a document open, you can go to File - Document Properties.

If you want to set properties programmatically, you can use the DocumentTools:-SetDocumentProperty command.

1 2 3 4 5 6 7 Last Page 1 of 9