问题:是否可以在非均匀轴上显示图像?
细节:
我需要将多维时间序列说明为图像.但是这个时间序列的时间网格是非常不均匀的.这是一个例子:
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)
说明统一时间网格上的图像.
编辑:可以重新采样具有更高均匀分辨率的时间序列.但我的时间序列已经很大了.
我写了一个简单的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返回数组.我尝试这种技术的原因是为了避免两次分配数组的内存.
我需要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);
不起作用.谢谢.
我已阅读相关问题和答案(例如,此处)。但它们是关于是否可以在不赋值的情况下使用三元运算。我的问题是为什么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) 我有一个由Wireshark创建的".pcapng"二进制文件.
如何检测每个新包的开头?
是否有任何特定的字节序列?
或者,如何检测包的末尾?
我需要显示带有自定义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) 我有一个外部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) 我的应用程序使用灰度"热图"执行数据可视化.在它上面我需要画出黄色的时间轴.它在黑色背景上看起来不错,但在白色背景上变得不可见(参见附图).如何让它在任何背景下都可见?
以下是我绘制时间戳的方法:
g.setColor(Color.yellow);
g.drawString("12:43:15", x, y);
Run Code Online (Sandbox Code Playgroud)
g
java.awt.Graphics对象在哪里