小编Ser*_*erg的帖子

Matlab中非均匀的imagesc()轴

问题:是否可以在非均匀轴上显示图像?

细节:

我需要将多维时间序列说明为图像.但是这个时间序列的时间网格是非常不均匀的.这是一个例子:

m = 10;
n = 3;
t = sort(rand(m, 1));  % non-uniform time
values = randn(m, n);  % some random values
Run Code Online (Sandbox Code Playgroud)

figure, plot(t, values);井处理它.

imagesc()转换t成之间的均匀时间t(1)t(end)根据文档:

imagesc(x,y,C)将C显示为图像,并使用向量x和y指定x轴和y轴的边界.

因此,命令:

figure, imagesc(t, 1 : n, values'); colorbar;
Run Code Online (Sandbox Code Playgroud)

说明统一时间网格上的图像.

在此输入图像描述 在此输入图像描述

编辑:可以重新采样具有更高均匀分辨率的时间序列.但我的时间序列已经很大了.

matlab time-series image-processing

5
推荐指数
2
解决办法
4519
查看次数

在Matlab的mex函数中使用预分配的数组

我写了一个简单的mex函数,它已经通过Matlab数组分配了更新:

mex_test_array.c

#include "mex.h"

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
    double *x = mxGetPr(prhs[0]);
    x[0] = 3.1416;
}
Run Code Online (Sandbox Code Playgroud)

测试1:

>> y = zeros(2, 2);
>> mex_test_array(y);
>> y

y =

    3.1416         0
         0         0
Run Code Online (Sandbox Code Playgroud)

测试2:

>> y = zeros(2, 2);
>> mex_test_array(y(:, 1));
>> y

y =

     0     0
     0     0
Run Code Online (Sandbox Code Playgroud)

为什么它不适用于子矩阵(测试2)?它可以使它工作吗?

请指教.

备注:我明白,更新输入数组不是如何编写mex文件,我知道如何从mex返回数组.我尝试这种技术的原因是为了避免两次分配数组的内存.

matlab mex

3
推荐指数
1
解决办法
1191
查看次数

Matlab的arrayfun用于类对象的统一输出

我需要ID使用arrayfun 构建一个类对象数组:

% ID.m
classdef ID < handle
    properties
        id
    end
    methods
        function obj = ID(id)
            obj.id = id;
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

但得到一个错误:

>> ids = 1:5;
>> s = arrayfun(@(id) ID(id), ids) 
??? Error using ==> arrayfun
ID output type is not currently implemented.
Run Code Online (Sandbox Code Playgroud)

我可以在循环中交替构建它:

s = [];
for k = 1 : length(ids)
    s = cat(1, s, ID(ids(k)));
end
Run Code Online (Sandbox Code Playgroud)

但是这个arrayfun的使用有什么问题?

编辑(问题的澄清):问题不是如何解决问题(有几种解决方案),但为什么简单的语法s = arrayfun(@(id) ID(id), ids);不起作用.谢谢.

oop matlab class

3
推荐指数
1
解决办法
2287
查看次数

为什么三元运算必须返回值?

我已阅读相关问题和答案(例如,此处)。但它们是关于是否可以在不赋值的情况下使用三元运算。我的问题是为什么Java不支持它?有一些与编译有关的根本原因吗?有支持它的编程语言吗?

我问的原因是因为一个声明

<condition> ? <do this if true> : <do that if false>
Run Code Online (Sandbox Code Playgroud)

不仅更加优雅并且节省了4行代码,而且与

value = <condition> ? <this if true> : <that if false>
Run Code Online (Sandbox Code Playgroud)

以下是市场数据订单簿实施的实际示例:

public class OrderBook {

    public TreeMap<Integer, Integer> bids = new TreeMap<>(Collections.reverseOrder());
    public TreeMap<Integer, Integer> asks = new TreeMap<>();

    public void quote(boolean isBid, int price, int size) {
        Map<Integer, Integer> book = isBid ? bids : asks;
        if (size == 0) {
            book.remove(price);
        } else {
            book.put(price, size);
        }
    }
} …
Run Code Online (Sandbox Code Playgroud)

java compilation ternary-operator

3
推荐指数
1
解决办法
167
查看次数

Wireshark包开始识别

我有一个由Wireshark创建的".pcapng"二进制文件.

如何检测每个新包的开头?

是否有任何特定的字节序列?

或者,如何检测包的末尾?

binary sniffer pcap wireshark packet-sniffers

2
推荐指数
1
解决办法
345
查看次数

在JList中使用自定义JPanel组件

我需要显示带有自定义JPanel组件的JList Item.这些组件具有独特的标识name.它们可以动态添加到JList,或者只是更新(如果已经存在).我尝试以下实现,但它只生成一个空的JList.请指教.

在此输入图像描述

class Item extends JPanel {
    JLabel name = new JLabel(" ");
    JLabel col1 = new JLabel(" ");
    JLabel col2 = new JLabel(" ");    

    Item(){
        setMinimumSize(new Dimension(100, 20));
        setLayout(new BorderLayout());
        add(name, BorderLayout.WEST);
        add(col1, BorderLayout.CENTER);
        add(col2, BorderLayout.EAST);
    }
}

public class Test_List extends JFrame {
    private final JList list = new JList(new Item[0]);
    HashMap<String, Item> map = new HashMap<String, Item>();

    Test_List(){
        setTitle("Test JList");
        setLayout(new BorderLayout());
        add(new JScrollPane(list), BorderLayout.CENTER);
        pack();
    }

    public void update_item(String name, String s1, String …
Run Code Online (Sandbox Code Playgroud)

java swing jlist

2
推荐指数
1
解决办法
2373
查看次数

java类,扩展了外部API功能

我有一个外部API(我不能修改它)与类"A"和本地类"B"覆盖"A"的方法,并添加一个额外的功能.我需要根据一些参数"is_A"使用其中一个.

/ ------ API(A.java)----- /

package A;

public class A {

    public int pingA( int value ) {

        return value;

    }

}
Run Code Online (Sandbox Code Playgroud)

/ ------我的班级(B.java)----- /

package B;

import A.*;

public class B extends A {

    @Override
    public int pingA( int value ) {
        return value;
    }

    public int pingB( int value ) {
        return value;
    }

    public static void main(String[] args) {
        final boolean is_A = false;
        A obj;
        if (is_A) {
            obj = new A();
        } else {
            obj …
Run Code Online (Sandbox Code Playgroud)

java methods extends

1
推荐指数
1
解决办法
1217
查看次数

使用Java图形在白色绘画黄色

我的应用程序使用灰度"热图"执行数据可视化.在它上面我需要画出黄色的时间轴.它在黑色背景上看起来不错,但在白色背景上变得不可见(参见附图).如何让它在任何背景下都可见?

以下是我绘制时间戳的方法:

g.setColor(Color.yellow);
g.drawString("12:43:15", x, y);
Run Code Online (Sandbox Code Playgroud)

gjava.awt.Graphics对象在哪里

在此输入图像描述

java graphics swing

0
推荐指数
1
解决办法
299
查看次数