实部虚部合并和提取,巧用位运算符<<,>>, |,宏告警

Go数学运算符底层原理与工程实践指南 数学运算符是编程语言中最基础的语法单元,其行为由类型系统、硬件指令和IEEE 754等标准共同定义。理解加减乘除、位移、取模等运算符的编译期语义、溢出策略、类型约束及浮点精度特性,是保障数值计算正确性与系统稳定性的前提。Go语言拒绝运算符重载,坚持编译期确定性,使`+`、`%`、`<<`等操作成为类型专属的刚性契约,而非运行时多态接口。这既消除了隐式转换风险,也要求开发者直面整数静默回绕、浮点次正规数性能陷阱、无符号移位边界等底层细节。在金融、风控、实时音视频等对精度与可靠性敏感的场景中,合理选用`uint 阅读详情
#include <iostream>
using namespace std;

#define WARN(eq, str)\
{\
	if (!(eq))\
	{\
		cout<<"Warning, eq is not satisfied!" << str <<endl;\
	}\
}

int main()
{
    cout << "Hello Complex Digital World!"<<endl;

    // create Complex Number: cAll
    int aImg = 8, bReal = 4;
    int cAll = ( aImg << 16) | bReal;
    cout <<hex << " Img:" << aImg << ", Real: "<< bReal <<", Complex: "<< cAll <<endl;

    //Obtain Img,Real from cAll
    int cImg, cReal;
    cImg = cAll >> 16;
    cReal = (cAll << 16) >> 16;
    cout << " cAll "<< cAll << ", cImg=" << cImg <<", cReal="<< cReal <<endl;

    WARN(cImg == 8, "Imag is not 8");
    WARN(cReal==16,"Real is not 16");

	return 0;
}

result

Hello Complex Digital World!
Img:8, Real: 4, Complex: 80004
cAll 80004, cImg=8, cReal=4
Warning, eq is not satisfied!Real is not 16

python numpy 分离与合并复数矩阵实部虚部的方法 在进行数字信号处理的过程中,我们往往有对短时傅里叶变换频谱(spectrogram)进行分析的需求。常见的分析手段对应欧拉公式分为两种,要么使用模与相位的形式,要么使用实部虚部。本文分享一个简单的将复数光谱图分解为实部与虚部以及将两个部分重新合并为一个复数矩阵的过程,以下为python代码。 阅读详情

相关推荐

python复数1.2e+2-2.3e-4j的虚部是_关于python复数的几道经典题解析

今天偶然被问题到一个关于python复数的问题,突然有点懵了,于是赶紧回去充能。问题:1.23e-4+5.67e+8j.real=分析:这是一个python复数题,首先我们需要知道在python语言中,复数的虚数部分通过后缀“J"或“j”表示举个例子,程序如下:>>>a = 123-456jprint(“实部为:”,a.real,”,”)print(“实部为:”,a.imag)...

weixin_39685024的博客 3992

「自控原理」5.1 频率特性及其图示

频率特性法是控制系统分析与校正的重要方法。其思想来源于傅立叶分解,一切信号可以化成不同频率的正弦波。 系统的频率特性,是指在不同输入频率下,输出的幅值与相位与输出信号之间的关系。可以用幅频特性(Nyquist)、对数幅频特性(Bode)、Nicholes(尼柯尔斯图)进行表述。 本节主要讲授开环系统的频率特性的图示绘制方法

weixin_43014010的博客 2万+

Raptor码原理解析与MATLAB仿真:从LT码到预编码喷泉码

喷泉码作为无码率纠删码的代表,解决了传统编码需预先估计信道丢包率的问题,在广播、多播等一对多场景中具有天然优势。LT码是喷泉码的基础,但其在高码率下译码开销较大,容易因度分布断档导致译码失败。Raptor码通过引入预编码(如LDPC)对原始符号进行加固,再经LT编码输出,显著降低了译码开销,能以接近1.0的码率工作,在分布式存储、卫星广播及5G MBMS等领域有广泛应用。本文基于MATLAB仿真,详细阐述Raptor码的鲁棒孤子度分布设计、预编码矩阵构造、BP译码与高斯消元配合等核心模块,并给出参数调优与蒙

weixin_32181267的博客 291

不理解电路、信号处理中的“虚部”怎么办?看完秒懂

为什么电容、电感的阻抗表达式要用虚数? 为什么在傅立叶变换中要有虚数? 为什么在滤波器的传递函数中会出现虚数? 最初遇到“虚数”的概念是在高中数学中,我大概将它看成一维(实数)到二维的扩展。书上也就是画成两个坐标轴来表示复数嘛。那么,为什么只有一个虚数单位i, 没有再定义一个更高级的复数来描述三维空间呢?从来没想过。 大学学了高等代数,补充了复数域,多项式这些知识后大概知道为什么要发明出复数来补充实数的不足了。至于维数的扩展,也不是复数的用途。再后来,学了傅立叶变换之后,我对为什么要用复数来表示信号

linuxarmsummary的专栏 8046

QMT量化交易桥接方案深度对比:从MiniQMT淘汰说起

量化交易系统中的API桥接,本质是解决本地终端与底层交易引擎之间的通信瓶颈。其核心原理在于绕过GUI封装、直连确定性执行层,从而获得低延迟、高可靠、可监控的指令通路。技术价值体现在策略实盘一致性提升、毫秒级响应保障及运维可控性增强。典型应用场景包括打板策略、T+0套利、高频网格等对时效与稳定性双敏感的自动化交易。本文聚焦国金证券QMT专业版生态,系统剖析DLL注入、HTTP反向代理、IPC共享内存与官方HTTP API四大桥接路径的性能边界、合规风险与工程落地成本,尤其深入解析qmt终端 client is

weixin_33892359的博客 457

ZYNQ-7035+HMCAD1511高速数据采集系统设计

高速数据采集是电子测量、雷达信号处理与通信基带验证的核心技术基础,其性能瓶颈常集中于采样率、通道同步性与实时处理能力。基于ADC采样原理与SoC异构架构,高带宽、低抖动时钟链路与FPGA+ARM协同处理成为突破关键。ZYNQ-7035凭借275K逻辑单元与千级DSP资源,显著提升LVDS数据流吞吐与片上滤波/触发等实时算法部署能力;HMCAD1511则以1GSPS四通道同步采样和8位分辨率,满足示波器级动态范围需求。该组合广泛应用于嵌入式信号采集平台开发、教学实验系统构建及国产化仪器原型验证。

weixin_28939623的博客 262

【C#】虚部与实部

实数是数学中的一个基本概念,它包括了所有的有理数和无理数。实数集合是连续的,可以表示为数轴上的每一个点。复数在数学的许多领域中都有应用,包括工程学、物理学和计算机科学等。它们提供了一种强大的工具来解决那些。复数是实数的扩展,它允许进行除零以外的所有基本算术运算。复数由两部分组成:实部和虚部。

m0_61396811的博客 1433

VirtualBox虚拟机上ubuntu系统安装问题记:显示画面太小、启动就异常退出等

报错:Failed to load R0 module D:/VMMR0.r0: The path is not clean of leading double slashes: ‘D:/VMMR0.r0’ (VERR_SUPLIB_PATH_NOT_CLEAN).解决方法特别简单,就是安装VIrtualBox的时候不要安装在CDE等盘根目录下。首先VirtualBox的下载安装过程是比较简单的,此处就不赘述了。然后E盘下新建个目录,安装到这个目录下就可解决。

qq_42595610的博客 2826

LabVIEW合并VI

给出一个原始VI和基于原始VI的两个VI版本,LabVIEW可解决这些VI之间的差别,将改动合并至单独的VI。如要合并其它VI和你的VI的改动,基本VI中需有这两个VI的交集部分。例如,基本VI中必须有一个隧道,这样合并VI才知道其它VI和你的VI中的隧道是相互对应的。单击你的和其它子类别下改动的说明信息,可选择查看你的VI或其它VI改动的详细信息。解决所有改动后,单击关闭按钮,关闭合并VI对话框,再单击保存按钮,保存已合并的VI。单击你的VI文本框旁的浏览按钮,找到要合并的第二个VI,然后单击确定。

bjcyck的博客 1333

杰理SDK UART 使用教程

本文介绍了JL701n芯片的UART串口通信使用教程,重点讲解了UART2的初始化配置、数据收发和中断处理功能。教程详细说明了代码结构、核心功能函数、配置参数和使用步骤,包括UART初始化、数据发送和接收中断处理等关键操作。同时提供了完整的API接口说明和注意事项,强调了中断处理限制、缓冲区管理、引脚配置等重要细节。最后给出了基本使用流程和高级任务处理示例,并针对常见问题提供了故障排除建议。本教程适用于需要在JL701n芯片上实现可靠串口通信的开发者。

qq_42014563的博客 1818

《30天入门 SAP BTP 开发》教程的目录和使用说明,建议收藏

本教程分为两部分:第一部分为SAP BTP入门系列,包含从基础概念到操作步骤的系统性学习内容,建议零基础用户按顺序学习;第二部分为专题文章集合,涵盖SAP BTP的多个技术点,适合已有基础的用户按需查阅。教程包含账号申请、Global Account操作、Java应用开发、AI工具使用等丰富内容,同时解答常见问题并提供实战案例。所有文章均附带详细链接,便于读者系统学习或针对性查阅。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 4400

Python/Numpy 合并复数的实部和虚部

最近需要使用 FFT 分析图像的频谱。我想在图像FFT后,分别对其实部和虚部进行操作,之后进行合并,再重建回原始图像。 话不多说,直接上代码: img = cv2.imread("./data/0.jpg", 0) / 255. # 读取灰度图像 img_fft = np.fft.fft2(img) real, imag = img_fft.real, img_fft.imag '''不加操作,只进行合并,有两种方式合并实部和虚部''' # 第一种,通过这种方式得到的值与第二种有偏差,且无法正确重建回原始

wenjie_zhu的博客 6054

【DRAM存储器六十八】DDR5介绍--DQS Interval Oscillator—动态时序校准利器

DDR5内存采用DQS间隔振荡器(DQSIntervalOscillator)技术应对高速数据传输中的时序漂移问题。该技术通过测量DQS信号在可编程时间窗口内的振荡次数(16位计数值),动态监测温度/电压变化导致的DQS-DQ延迟偏移。控制器通过MPC命令启停振荡器,读取MR46/MR47寄存器获取计数值,并与基准值对比来调整DQS相位,确保数据采样窗口始终处于最佳位置。该机制使DDR5在8400MT/s高速率下仍能保持数据可靠性,有效补偿±0.48tCK的时序偏移。

highman110的博客 153

Java运算符深度解析:逻辑与按位运算的区别、原理与实战应用

在编程中,运算符是构建程序逻辑和进行底层优化的基础工具。逻辑运算符(如&&、||)和按位运算符(如&、|、^、~、<<、>>)虽然符号相似,但设计哲学和应用场景截然不同。逻辑运算符专为布尔逻辑设计,支持短路求值,能有效避免空指针异常等错误,是条件判断和安全调用的核心。按位运算符则直接操作二进制位,用于位掩码、权限控制、加密算法和底层性能优化,如快速判断奇偶性、不借助临时变量交换两数等。理解这两类运算符的核心差异,能帮助开发者编写更安全、高效的代码,避免线上故障。本文通过一个线上故障案例,深入剖析了逻辑运算符

weixin_30915275的博客 370

13、超声断层乳腺图像融合算法:乳腺癌诊断新突破

本文介绍了一种新型超声断层乳腺图像融合算法,通过结合超声透射(UTTc、UTTα)和反射断层图像(URT),实现对乳腺组织的多参数自动可视化。该算法能有效区分良性与恶性肿瘤,具有高准确性、无辐射、低成本等优势,适用于大规模乳腺癌早期筛查。初步临床测试验证了其可行性,未来有望成为乳腺癌诊断的新标准。

9q8w7e6r5的博客 156

YOLO11后处理优化 | 引入DIoU-NMS替代传统NMS,解决高重叠目标误删,召回率大幅提升

YOLO11模型在密集目标场景下存在NMS后处理导致的漏检问题。本文提出采用DIoU-NMS替代传统NMS,通过引入中心点距离信息,有效区分重叠但不同的目标,提升召回率。文章详细分析了传统NMS的三大局限性,对比了Soft-NMS和DIoU-NMS的优劣,并给出在YOLO11中实现DIoU-NMS的完整代码方案。该方法特别适用于安防监控、自动驾驶等目标密集场景,能够在不显著增加计算量的情况下显著改善检测效果。

2601_95807009的博客 151

govaluate 完整使用指南:从基础语法到高级函数

govaluate 是一款功能强大的 Go 语言表达式计算库,它允许开发者在应用程序中动态解析和执行类似 C 语言风格的算术、逻辑和字符串表达式。无论是需要用户自定义规则验证数据,还是构建灵活的监控告警系统,govaluate 都能提供简单高效的解决方案。 ## 为什么选择 govaluate? 在许多应用场景中,我们无法提前预知用户需要执行的表达式规则。例如: - 允许用户自定义数据验证规则

gitblog_00698的博客 880

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【无标题】Rust WebSocket 实现:从协议理解到生产实践

摘要: Rust凭借其内存安全和零成本抽象特性,成为构建高性能WebSocket服务的理想选择。本文探讨了Rust WebSocket实现的核心要点:利用枚举类型和模式匹配表达协议状态机,通过tokio异步模型处理并发读写(采用split模式避免数据竞争),分层错误处理提升可靠性,以及性能优化策略(如零拷贝和消息批处理)。代码示例展示了连接拆分为读写任务的核心实现,体现了Rust在实时通信中的独特优势——将语言特性与系统编程深度结合,实现安全高效的全双工通信。随着异步生态成熟,Rust在实时通信领域的潜力将

L1234567k的博客 487

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Flutter 三方库 bit_mask 的鸿蒙化适配指南 - 掌握极致的位运算艺术、助力鸿蒙底层驱动与高性能状态机开发

在 OpenHarmony 鸿蒙应用的底层开发、硬件交互以及高性能游戏引擎构建中,每一比特(Bit)的存储空间和每一纳秒的运算耗时都至关重要。当我们需要在一个整数中同时标记“Wi-Fi 已连接”、“蓝牙已开启”、“静音模式”、“低电量告警”等数十个开关状态时,传统的或大量的bool变量不仅占用内存大,且操作效率低下。bit_mask作为一个专注于位掩码操作的利器,为开发者提供了一套语义化、高性能的位运算接口。本文将介绍如何在鸿蒙端利用bit_mask榨干每一份硬件性能。bit_mask的核心逻辑是。

好代码自己会说话,烂代码才需要注释来圆谎 4593

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Pandas数据分析实战:从DataFrame操作到性能优化的完整指南

在Python数据分析领域,Pandas作为核心库,提供了高效处理结构化数据的强大能力。其核心数据结构DataFrame和Series基于NumPy构建,通过向量化操作实现高性能计算。理解索引对齐机制和内存布局原理是编写高效代码的关键,这直接影响到数据筛选、聚合等操作的性能。在工程实践中,Pandas的价值体现在能够无缝对接多种数据源,并通过数据清洗、分组聚合、时间序列处理等功能,支撑从数据预处理到洞察分析的全流程。特别是在处理大规模数据集时,掌握数据类型优化、分块读取和避免循环等技巧,能显著提升处理效率。

weixin_34060299的博客 352

混淆矩阵实战指南:从四格表到业务决策的核心工具

混淆矩阵是二分类模型评估的基础概念,本质是真实标签与预测结果的2×2交叉统计表,衍生出精确率、召回率、F1值等关键指标。其核心原理源于分类问题的笛卡尔积结构,不可增减却可扩展至多分类场景。在类别不平衡或错误代价不对称(如医疗漏诊、金融误拒)时,混淆矩阵能暴露准确率掩盖的风险,成为模型可信度的‘行为录像’。它支撑阈值调优、代价敏感学习与线上监控,广泛应用于反欺诈、疾病筛查、智能客服等工程实践。本文聚焦混淆矩阵的生成逻辑、指标推导、代码实现与业务映射,尤其强调FP和FN在真实场景中的成本量化。

abo1977的博客 415

嵌入式 C 语言学习笔记

梳理了C语言核心技术要点及其在嵌入式领域的应用实践

2301_80000939的博客 502

java基础知识

java基础知识

xgq_111的博客 2231

c++输入复数读取实部和虚部_复数知识点总结

我们把形如z=a+bi(a,b均为实数)的数称为复数,其中a称为实部,b称为虚部,i称为虚数单位。当z的虚部等于零时,常称z为实数;当z的虚部不等于零时,实部等于零时,常称z为纯虚数。复数域是实数域的代数闭包,即任何复系数多项式在复数域中总有根。复数是由意大利米兰学者卡当在十六世纪首次引入,经过达朗贝尔、棣莫弗、欧拉、高斯等人的工作,此概念逐渐为数学家所接受数集拓展到实数范围内,仍有些运...

weixin_35772723的博客 5238

为什么阻抗等于实加虚部呢?为什么有虚部呢,虚部是什么啊?

为什么阻抗等于实加虚部呢?为什么有虚部呢,虚部是什么啊? 2012-09-25 17:16江山八秀 | 分类:物理学 | 浏览372次 提问者采纳 2012-09-25 17:40 电阻用实部表示,电抗用正的虚部表示,电容用负的虚部表示。一个器件的阻抗是由实部和虚部合成的,这样在交流电路的计算时,就可以直接运用复数的运算规则进行计算。 提问者评价 原来是

linuxheik的专栏 1万+

python实部和虚部都是浮点数_python——numpy库

numpy库英文官方文档:https://docs.scipy.org/doc/numpy/reference/arrays.ndarray.html一、numpy库中的数组对象二、numpy库数据存取与文件三、numpy库的随机函数四、numpy的统计函数五、梯度函数一、numpy库中的数组对象:N维数组类型:ndarray1) ndarray的作用:a) 数组对象性可以去掉...

weixin_39665847的博客 863
上一篇: cpp namespace使用,全局变量,嵌套namespace
下一篇: ofstream输出文件流简易操作
飞凡可期
博客等级 码龄11年 34粉丝 117原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值