Daniel Skoog

Daniel Skoog

1766 Reputation

22 Badges

13 years, 196 days

MaplePrimes Activity

These are replies submitted by Daniel Skoog

@JAnd : That would probably be the easiest solution, plus you would get the added benefit of the new Time Series commands (something like SeasonalSubseriesPlot might of interest).


That said, you could also create your own procedure to deal with your 'time series'.  To do this, I would first suggest that you could store your 'time series' in whatever storage container you'd like. A matrix is probably the easiest to work with here, and ff you use ImportMatrix (or ExcelTools given that you have an older version of Maple) to get your data, you could just leave the data in the default 'Matrix' that it comes in to. 

MyData := ImportMatrix("PathToMyData") or

MyData := ExcelTools:-Import("PathToMyData")

Next you'll need to do some work to grab rows and columns.  For example, to return the first row of months, you would just use MyData[ 1 , 1 .. () ]. For you to create your own Time series plot, you'll need to work with the data in this way.

Something like this might help to generate 'time series' plots:


TimePlotter := proc (dataset)
    local i;
    return Statistics:-LineChart(convert(dataset[2 .. (), 2 ..()]^%T, listlist),
              'tickmarks' = [[seq(i = typeset(dataset[i, 1]),
                                  i = 2 .. LinearAlgebra:-RowDimension(dataset))], default],
              'legend' = [ seq(dataset[1, i], i = 2 .. LinearAlgebra:-ColumnDimension(dataset) ) ],
              'gridlines' = true,
              'symbolsize' = 1,
              'symbol' = 'solidcircle',
              'thickness' = 3 )
end proc:

TimePlotter(MyData) or

TimePlotter(MyData[ .. , [ 1 , #Column ] ] ) for just one column of data.


Here I needed to do some tricks to keep track of the dates and column headings such that we can use these for tickmarks and legend entries. Also, since only the first row and column contain non-numeric entires, we limit the data for the LineChart plot to rows and columns 2 and above.

It's not a C solution, but you could use tools in MapleSim:

Using the MapleSim Control Design Toolbox to Design a PID Controller: http://www.maplesoft.com/support/help/MapleSim/view.aspx?path=MapleSimControlDesign/PIDControlDesign


Intro to Control Systems: http://www.maplesoft.com/engineeringfundamentals/topic.aspx?tid=12

Update: You can access Maple worksheets through the Maple cloud on tablets http://maplecloud.maplesoft.com .

To do so, you would need to share your document on the cloud, see here for more details.

This issue has been fixed in Maple 17.02

The finance package is available in 64-bit Windows for versions after and including Maple 17.

J4James is correct. Each version of Maple is essentially a standalone install that does not have any effect on previous versions. This means that you can have multiple versions of Maple installed on your machine at any given time but there is no update that you can run to upgrade from version to version. 


If you are interested in 'upgrading' to Maple 18, you would need to purchase a copy of Maple 18 and install it: http://www.maplesoft.com/pricing/

Adding a global size option to plots would make a lot of people happy. This should hopefully be making its way into the next release.

Both of these are bugs in 17.01 that only effect Maple being run with certain international keyboards. English keyboards haven't been affected.

We are working on resolving this as we speak, but here are a few notes that may help:

With respect to the '^' issue:
2D math: Pressing x ^ ^ 2 returns the desired result. The first '^' press doesn't move the cursor up, but the second does. Pressing '^' twice seems like a workaround here.

1D math: Pressing x ^ 2 works, however the '^' does not appear until after the 2 is entered. So the workaround here is seemingly to just proceed as normal and the '^' will appear once another character is entered.

With respect to the '}' issue:

'}' doesn't work in 2D math on certain international keyboards. It does work in 1D math, but this isn't really a workaround. 

As I mentioned, the developers are looking into this and hopefully we will see some resolution soon.


Thanks for posting this. I have added a software change request for the issue.


Open the file in a  text editor and try changing the following line:

>-command Start Maple -args -B /Library/Frameworks/Maple.framework/Versions/16/lib>


>-command Start Maple -args -strict32bit -B /Library/Frameworks/Maple.framework/Versions/16/lib>

We have posted a Quandl library for Maple: http://www.mapleprimes.com/maplesoftblog/147041-Quandl-Library-For-Maple

This library will hopefully grow alongside the Quandl API and feature many new and exciting updates in the future.

@marc005: This is definitely on our radar.  Eventually, we would certainly like to see Maple be able to easily communicate over several different protocols, including HTTPS, FTP and others. 

@marc005: This is definitely on our radar.  Eventually, we would certainly like to see Maple be able to easily communicate over several different protocols, including HTTPS, FTP and others. 

Assuming it is the 64-bit version of Maple 15, in order to get access to the full Finance package, you can install the 32-bit version of Maple.  


Note that you can have both the 32- and 64-bit versions installed on the same machine, so no need to uninstall the 64-bit version.


If you need a download link for Maple 15 32-bit, contact Maplesoft tech support (support@maplesoft.com).

Here's an attempt. So far it seems to work with most of the csv files that I've tried from Quandl, but I certainly haven't stress tested it by any means. It would definitely benefit from some error checking in case there is a bad call/return to/from the URL. This does save most of the heavy lifting for sscanf, but I still needed some way to determine the dimensions of the data matrix, so StringTools was needed. The resulting matrix should resemble the matrix you'd get from ImportMatrix.

GetCSV := proc ( URL::string )
    local data, nrows, ncols;

    data := HTTP:-Get( URL , 'timeout' = 100)[2];

    nrows := numelems( remove( type, StringTools:-Split( op( data ), "\n" ), "" ) ):
    ncols := numelems( StringTools:-Split( op( remove( type, StringTools:-Split( op( data ), "\n" ), "" ) ), "," ) ):
    data := op( sscanf( data, cat( "%{", nrows, ",", ncols, "}lvm" ) ) ) ;

    return data;
end proc:

GetCSV( "http://www.quandl.com/api/v1/datasets/PRAGUESE/PX.csv?trim_start=2012-09-30&trim_end=2012-11-29" );


Or from Yahoo:

GetCSV( "http://ichart.finance.yahoo.com/table.csv?s=CSV&a=10&b=15&c=1996&d=03&e=24&f=2012&g=d&ignore=.csv");

First 6 7 8 9 10 11 Page 8 of 11