当前位置:

首页 > 硬件相关 > Matlab采集电脑CPU等硬件信息方法

Matlab采集电脑CPU等硬件信息方法

不多废话,直接展示代码代码语言:javascript代码运行次数:0运行复制```javascriptfunctioninfo=cpuinfo()%CPU数据采集%信息=CPUINFO()返回一个包含不同字段的结构%中央处理器和操作系统信息由/proc/cpuinfo(Unix)、%sysctl(Mac)或WMIC(Windows)提供。%CPU名称%CPU的时钟频率%CPU缓存大小(L2)%物理CPU核心数

本文目录

    Matlab实现采集电脑的CPU等硬件信息

    不多废话,直接展示代码

    代码语言:javascript代码运行次数:0运行复制```javascript function info = cpuinfo() % CPU数据采集 % 信息 = CPUINFO()返回一个包含不同字段的结构 % 中央处理器和操作系统信息由/proc/cpuinfo(Unix)、 % sysctl(Mac)或WMIC(Windows)提供。 % CPU名称 % CPU的时钟频率 % CPU缓存大小(L2) % 物理CPU核心数 % * 操作系统名称和版本 % % 参见: computer, isunix, ismac

    if isunix % 判断是否为UNIX系统 if ismac % 判断是否为Mac系统 info = cpuInfoMac(); else info = cpuInfoUnix(); end else info = cpuInfoWindows(); end

    %------------------------------------------------------------------------- function info = cpuInfoWindows() sysInfo = callWMIC('cpu'); osInfo = callWMIC('os'); info = struct( ... 'Name', sysInfo.Name, ... 'Clock', [sysInfo.MaxClockSpeed, ' MHz'], ... 'Cache', [sysInfo.L2CacheSize, ' KB'], ... 'NumProcessors', str2double(sysInfo.NumberOfCores), ... 'OSType', 'Windows', ... 'OSVersion', osInfo.Caption); % 输出结构

    %------------------------------------------------------------------------- function info = callWMIC(alias) % 调用Windows管理命令行WMIC olddir = pwd(); % 保存当前目录 cd(tempdir); % 切换到临时目录 sysinfo = evalc(sprintf('!wmic %s get /value', alias)); % 执行WMIC命令 cd(olddir); % 切换回原目录 fields = textscan(sysinfo, '%s', 'Delimiter', '\n'); fields = fields{1}; % 处理数据 fields(cellfun('isempty', fields)) = []; % 去除空行 values = cell(size(fields)); for ff = 1:numel(fields) idx = find(fields{ff} == '=', 1, 'first'); % 查找等号 if ~isempty(idx) && idx > 1 values{ff} = strtrim(fields{ff}(idx+1:end)); % 提取值 fields{ff} = strtrim(fields{ff}(1:idx-1)); % 提取字段名 end end % 删除任何重复项(仅适用于双插槽电脑,我们假设所有插槽有相同的处理器)。 numResults = sum(strcmpi(fields, fields{1})); if numResults > 1 % 计算核心数 numCoresEntries = find(strcmpi(fields, 'NumberOfCores')); if ~isempty(numCoresEntries) cores = cellfun(@str2double, values(numCoresEntries)); values(numCoresEntries) = {num2str(sum(cores))}; end % 去除重复结果 [fields, idx] = unique(fields, 'first'); values = values(idx); end % 数据转换 info = cell2struct(values, fields);

    %------------------------------------------------------------------------- function info = cpuInfoMac() % Mac系统与Windows类似 machdep = callSysCtl('machdep.cpu'); hw = callSysCtl('hw'); info = struct( ... 'Name', machdep.brand_string, ... 'Clock', [num2str(str2double(hw.cpufrequency_max)/1e6), ' MHz'], ... 'Cache', [machdep.cache.size, ' KB'], ... 'NumProcessors', str2double(machdep.core_count), ... 'OSType', 'Mac OS/X', ... 'OSVersion', getOSXVersion());

    %------------------------------------------------------------------------- function info = callSysCtl(namespace) infostr = evalc(sprintf('!sysctl -a %s', namespace)); % 移除前缀 infostr = strrep(infostr, [namespace, '.'], ''); % 现在转换为结构 infostr = textscan(infostr, '%s', 'delimiter', '\n'); infostr = infostr{1}; info = struct(); for ii = 1:numel(infostr) colonIdx = find(infostr{ii} == ':', 1, 'first'); if isempty(colonIdx) || colonIdx == 1 || colonIdx == length(infostr{ii}) continue end prefix = infostr{ii}(1:colonIdx-1); value = strtrim(infostr{ii}(colonIdx+1:end)); while ismember('.', prefix) dotIndex = find(prefix == '.', 1, 'last'); suffix = prefix(dotIndex+1:end); prefix = prefix(1:dotIndex-1); value = struct(suffix, value); end info.(prefix) = value; end

    %------------------------------------------------------------------------- function vernum = getOSXVersion() % 提取操作系统版本号 ver = evalc('system(''sw_vers'')'); vernum = regexp(ver, 'ProductVersion:\s([1234567890.]*)', 'tokens', 'once'); vernum = strtrim(vernum{1});

    %------------------------------------------------------------------------- function info = cpuInfoUnix() txt = readCPUInfo(); cpuinfo = parseCPUInfoText(txt); txt = readOSInfo(); osinfo = parseOSInfoText(txt); % 合并结构 info = cell2struct([struct2cell(cpuinfo); struct2cell(osinfo)], ... [fieldnames(cpuinfo); fieldnames(osinfo)]);

    %------------------------------------------------------------------------- function info = parseCPUInfoText(txt) % 解析字段 lookup = { ... 'model name', 'Name' ... 'cpu Mhz', 'Clock' ... 'cpu cores', 'NumProcessors' ... 'cache size', 'Cache' ... }; info = struct( ... 'Name', {''}, ... 'Clock', {''}, ... 'Cache', {''} ); for ii = 1:numel(txt) if isempty(txt{ii}) continue; end % 查找分隔属性名和值的冒号 colon = find(txt{ii} == ':', 1, 'first'); if isempty(colon) || colon == 1 || colon == length(txt{ii}) continue; end fieldName = strtrim(txt{ii}(1:colon-1)); fieldValue = strtrim(txt{ii}(colon+1:end)); if isempty(fieldName) || isempty(fieldValue) continue; end % 是否为我们感兴趣的字段之一? idx = find(strcmpi(lookup(:,1), fieldName)); if ~isempty(idx) newName = lookup{idx,2}; info.(newName) = fieldValue; end end % 转换时钟速度 info.Clock = [info.Clock, ' MHz']; % 转换核心数 info.NumProcessors = str2double(info.NumProcessors);

    %------------------------------------------------------------------------- function info = parseOSInfoText(txt) info = struct( ... 'OSType', 'Linux', ... 'OSVersion', ''); % 查找字符串"linux version"然后查找括号内的内容 [~, b] = regexp(txt, '[^(](([^)])).*', 'match', 'tokens', 'once'); info.OSVersion = b{1}{1};

    %------------------------------------------------------------------------- function txt = readCPUInfo() fid = fopen('/proc/cpuinfo', 'rt'); if fid

    
    输出结果如下
    

    代码语言:javascript代码运行次数:0http://www.w3.org/2000/svg"> d="M6.66666 10.9999L10.6667 7.99992L6.66666 4.99992V10.9999ZM7.99999 1.33325C4.31999 1.33325 1.33333 4.31992 1.33333 7.99992C1.33333 11.6799 4.31999 14.6666 7.99999 14.6666C11.68 14.6666 14.6667 11.6799 14.6667 7.99992C14.6667 4.31992 11.68 1.33325 7.99999 1.33325ZM7.99999 13.3333C5.05999 13.3333 2.66666 10.9399 2.66666 7.99992C2.66666 5.05992 5.05999 2.66659 7.99999 2.66659C10.94 2.66659 13.3333 5.05992 13.3333 7.99992C13.3333 10.9399 10.94 13.3333 7.99999 13.3333Z" fill="currentcolor">运行http://www.w3.org/2000/svg"> clip-rule="evenodd" d="M4.5 15.5V3.5H14.5V15.5H4.5ZM12.5 5.5H6.5V13.5H12.5V5.5ZM9.5 2.5H3.5V12.5H1.5V0.5H11.5V2.5H9.5Z" fill="currentcolor" fill-rule="evenodd">复制```javascript >> info = cpuinfo() info = 包含以下字段的 struct: Name: '12th Gen Intel(R) Core(TM) i5-12500H' Clock: '2500 MHz' Cache: '9216 KB' NumProcessors: 12 OSType: 'Windows' OSVersion: 'Microsoft Windows 11 家庭中文版'

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    硬件相关 操作系统
    相关文章 更多
    谷歌浏览器如何清除DNS缓存
    谷歌浏览器如何清除DNS缓存

    先处理Chrome的DNS缓存:在地址栏输入 chrome://net-internals/#dns,找到“Host resolver cache”区域,点击 Clear host cache。接着清理Socket连接:访问 chrome://net-internals/#sockets,依次点击

    淘宝网页版入口查找教程
    淘宝网页版入口查找教程

    淘宝官方网页登录入口 对于如何找到淘宝网页版的入口,很多朋友都感到有点摸不着头脑。别急,这篇文章就来为你拆解清楚整个登录流程。官方的登录入口很明确,就在官网首页的左上角。 淘宝网页版入口位于官网首页左上角,点击“亲,请登录”即可跳转至统一的验证页面。登录支持密码、短信验证码和手机APP扫码三种方式,

    钉钉视频通话卡顿音画不同步怎么办
    钉钉视频通话卡顿音画不同步怎么办

    钉钉视频卡顿与音画不同步?这份优化指南请收好 正开着钉钉视频会议,画面却一卡一顿,或者声音和嘴型对不上——这场景是不是很熟悉?沟通效率瞬间大打折扣。别急,这类问题通常有迹可循,解决起来也并非难事。下面这套从易到难的排查思路,或许能帮你快速找回流畅的会议体验。 本文运行环境:MacBook Pro,m

    黑盒工坊插件如何安装
    黑盒工坊插件如何安装

    如何安装黑盒工坊与插件:一篇让你上手无忧的指南 对不少玩家来说,黑盒工坊这个名字绝不陌生。作为一款备受青睐的插件管理工具,它就像是一座桥梁,将玩家与海量功能各异的游戏插件连接起来,极大地扩展了游戏的可玩性与个性化空间。但是,第一次接触时该如何安装并管理这些插件呢?别担心,接下来的内容,将为你清晰拆解

    登录入口今日头条官网
    登录入口今日头条官网

    今日头条的官网登录入口,其实就藏在它的官方网站https://www.toutiao.com/里。通过电脑访问这个地址,输入账号密码完成验证,你就能顺利登入。当然,更常见的场景是在手机App上,那里提供了手机号验证、第三方账号绑定等多种便捷的登录方式,几步操作就能搞定。 “今日头条官网的登录入口到底

    打字鸭官方网址登录入口
    打字鸭官方网址登录入口

    打字鸭官方网址是https://www.daziya.com/,提供科学分层课程、沉浸式交互体验、精准数据追踪、灵活教学角色及稳定轻量技术架构。 提到在线打字练习,很多朋友第一时间会问:打字鸭的官方入口到底在哪?不用再四处搜索了,它的直达地址就在这里。 https://www.daziya.com/

    steam正版官网入口地址
    steam正版官网入口地址

    Steam正版官网入口与完整使用指引 Steam的全球统一官方商店入口是:https://store.steampowered.com/。认准这个地址,页面具备HTTPS加密、Valve版权标识及安全锁标志,能有效保障访问安全。 还在四处搜索Steam的正版官网地址?其实不必那么麻烦。下面这份从官网

    HTML转PDF在线官网
    HTML转PDF在线官网

    HTML转PDF在线官网入口:网页内容一键生成PDF指南 HTML转PDF在线官网入口是https://htmltopdf.com,支持HTML5标签、CSS渲染、多语言字符、Web字体;操作免注册,可预览、自定义参数、批量导出;输出300DPI、保留超链接与矢量图;本地处理保障隐私;兼容主流浏览器

    体系编程、SOC编程那些事儿
    体系编程、SOC编程那些事儿

    体系编程基于CPU核架构,涵盖指令集、流水线、协处理器等;SOC编程针对片上集成模块进行寄存器级控制,包括时钟、引脚复用、GPIO、中断等。二者关联紧密,但体系编程侧重架构,SOC编程侧重模块控制。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。