F# 在f中复制matlab风格的绘图命令#

F# 在f中复制matlab风格的绘图命令#,f#,F#,我有一个程序,可以对二维数值数组(例如int[,]或float[,])执行一系列操作,其中的代码如下: let a3 = array |> f1 |> f2 |> f3 a1 = f1(array); a2 = f2(a1); a3 = f3(a2); 在Matlab或Octave中,我将编写以下代码: let a3 = array |> f1 |> f2 |> f3 a1 = f1(array);

我有一个程序,可以对二维数值数组(例如int[,]或float[,])执行一系列操作,其中的代码如下:

    let a3 = array |> f1 |> f2 |> f3
    a1 = f1(array);
    a2 = f2(a1);
    a3 = f3(a2);
在Matlab或Octave中,我将编写以下代码:

    let a3 = array |> f1 |> f2 |> f3
    a1 = f1(array);
    a2 = f2(a1);
    a3 = f3(a2);
在开发过程中,我经常希望将中间值视为图像,如下所示:

    a1 = f1(array);
    figure;imshow(a1);
    a2 = f2(a1);
    figure;imshow(a2);
    a3 = f3(a2);
有没有一种简单的方法可以用F#编写一个签名如下的例程:

    val myplot: 'a [,] -> ()
这个函数打开一个包含画布的窗口,我可以在画布上绘制相应的数组,然后立即返回。如果有这样的事,我可以 写:

这将使我的管道成为:

   let a3 = array |> f1 |> plotThrough |> f2 |> plotThrough |> f3
在这种情况下,将出现两个独立的窗口,一个包含f1结果的我的绘图,另一个包含f2结果的绘图

我遇到的问题不是在画布部件上绘图(这很容易-要求图形上下文,在其中绘制),而是如何为每个plot命令生成一个窗口,以便获得要绘制的图形上下文。我有一个有限的测试工具,它是一个静态设计的表单GUI,它有两个图像,可以提供图形上下文,但我不希望每次尝试不同的管道和不同数量的绘图时都必须设计表单


注意:我对那些假设正在使用fsi REPL的解决方案不感兴趣-我希望能够有一个可执行文件,在运行时,它将为每个绘图弹出一组窗口,然后等待所有窗口关闭,然后再终止。

也许您会发现这很有用: