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

matlab实现采集电脑的cpu等硬件信息

不多废话,直接展示代码

微信 WeLM 微信 WeLM

WeLM不是一个直接的对话机器人,而是一个补全用户输入信息的生成模型。

微信 WeLM 33 查看详情 微信 WeLM

代码语言:javascript代码运行次数:0运行复制“`javascriptfunction 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();elseinfo = cpuInfoUnix();endelseinfo = 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管理命令行WMIColddir = 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 > 1values{ff} = strtrim(fields{ff}(idx+1:end)); % 提取值fields{ff} = strtrim(fields{ff}(1:idx-1)); % 提取字段名endend% 删除任何重复项(仅适用于双插槽电脑,我们假设所有插槽有相同的处理器)。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})continueendprefix = 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);endinfo.(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;endfieldName = 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;endend% 转换时钟速度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代码运行次数:0<svg fill="none" height="16" viewbox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path 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">运行<svg fill="none" height="16" viewbox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path 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: 12OSType: 'Windows'OSVersion: 'Microsoft Windows 11 家庭中文版'

以上就是Matlab实现采集电脑的CPU等硬件信息的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/463892.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
win7文件夹图标该如何更改?
上一篇 2025年11月8日 04:41:38
百度影音开机自启动怎么办 禁止百度影音开机启动的方法
下一篇 2025年11月8日 04:41:45

相关推荐

  • 怎么在PHP代码中实现图片上传功能_PHP图片上传功能实现与安全处理教程

    首先创建含enctype的HTML表单,再用PHP接收文件,检查目录、移动临时文件,验证类型与大小,生成唯一文件名,并调整php.ini限制以确保上传成功。 如果您尝试在PHP项目中添加图片上传功能,但服务器无法正确接收或保存文件,则可能是由于表单配置、文件处理逻辑或安全限制的问题。以下是实现该功能…

    2026年5月10日
    100
  • 比特币新手教程 比特币交易平台有哪些

    比特币是一种去中心化的数字货币,基于区块链技术实现点对点交易,具有匿名性、有限发行和不可篡改等特点;新手可通过交易所购买,P2P交易获得比特币,常用平台包括Binance、OKX和Huobi;交易流程包括注册账户、实名认证、绑定支付方式、充值法币并下单购买,可选择市价单或限价单;比特币存储方式有交易…

    2026年5月10日
    000
  • 如何让动态追加元素的类事件生效?

    如何在追加元素后使其绑定类事件生效 在页面中引入三方 JavaScript 类并通过添加相应 class 来调用事件方法是一种常见的做法。然而,如果通过 JavaScript 追加标签元素,即使添加了对应的 class,事件也可能无法生效。 为了解决这个问题,可以尝试以下步骤: 检查追加的标签是否为…

    2026年5月10日
    000
  • RichHandler与Rich Progress集成:解决显示冲突的教程

    在使用rich库的`richhandler`进行日志输出并同时使用`progress`组件时,可能会遇到显示错乱或溢出问题。这通常是由于为`richhandler`和`progress`分别创建了独立的`console`实例导致的。解决方案是确保日志处理器和进度条组件共享同一个`console`实例…

    2026年5月10日
    000
  • 修复点击时按钮抖动:CSS垂直对齐实践

    本文探讨了在Web开发中,交互式按钮(如播放/暂停按钮)在点击时发生意外垂直位移的问题。通过分析CSS样式变化对元素布局的影响,我们发现这是由于按钮不同状态下的边框样式和内边距改变,以及默认的垂直对齐行为共同作用所致。核心解决方案是利用CSS的vertical-align属性,将其设置为middle…

    2026年5月10日
    000
  • Python命令怎样使用profile分析脚本性能 Python命令性能分析的基础教程

    使用Python的cProfile模块分析脚本性能最直接的方式是通过命令行执行python -m cProfile your_script.py,它会输出每个函数的调用次数、总耗时、累积耗时等关键指标,帮助定位性能瓶颈;为进一步分析,可将结果保存为文件python -m cProfile -o ou…

    2026年5月10日
    000
  • c++如何实现UDP通信_c++基于UDP的网络通信示例

    UDP通信基于套接字实现,适用于实时性要求高的场景。1. 流程包括创建套接字、绑定地址(接收方)、发送(sendto)与接收(recvfrom)数据、关闭套接字;2. 服务端监听指定端口,接收客户端消息并回传;3. 客户端发送消息至服务端并接收响应;4. 跨平台需处理Winsock初始化与库链接,编…

    2026年5月10日
    000
  • 谷歌浏览器如何截图 谷歌浏览器页面截图技巧

    谷歌浏览器如何截图 谷歌浏览器页面截图技巧谷歌浏览器如何截图 谷歌浏览器页面截图技巧谷歌浏览器如何截图 谷歌浏览器页面截图技巧谷歌浏览器如何截图 谷歌浏览器页面截图技巧

    使用谷歌浏览器的开发者工具截图步骤:1. 按ctrl+shift+i(windows/linux)或cmd+option+i(mac)打开开发者工具。2. 点击右上角三个点,选择”更多工具”,再选择”截图”。3. 选择截取整个页面。推荐的谷歌浏览器扩展…

    2026年5月10日 用户投稿
    100
  • 三星不再独享,消息称搭载骁龙 8 Gen 3 领先版处理器新机即将发布

    三星不再独享,消息称搭载骁龙 8 Gen 3 领先版处理器新机即将发布三星不再独享,消息称搭载骁龙 8 Gen 3 领先版处理器新机即将发布三星不再独享,消息称搭载骁龙 8 Gen 3 领先版处理器新机即将发布三星不再独享,消息称搭载骁龙 8 Gen 3 领先版处理器新机即将发布

    6 月 15 日消息,据博主@肥威 今日爆料,搭载骁龙 8 Gen 3 领先版%ign%ignore_a_1%re_a_1%的新机即将发布,把之前的 for Galaxy 改成“for Everybody”。 Pic Copilot AI时代的顶级电商设计师,轻松打造爆款产品图片 158 查看详情 …

    2026年5月10日 用户投稿
    000
  • Golang使用Protobuf定义接口与消息格式

    Protobuf通过字段编号实现兼容性,新增字段可忽略、删除字段可保留编号,确保新旧版本互操作,支持服务独立演进。 在Golang项目中,利用Protobuf定义接口和消息格式,本质上是为服务间通信构建了一套高效、类型安全且跨语言的契约。它让数据结构清晰可见,RPC调用标准化,极大地简化了分布式系统…

    2026年5月10日
    000
  • 高通预热 2023 骁龙峰会:以AI为主题,10 月 25-26 日举行

    高通预热 2023 骁龙峰会:以AI为主题,10 月 25-26 日举行高通预热 2023 骁龙峰会:以AI为主题,10 月 25-26 日举行高通预热 2023 骁龙峰会:以AI为主题,10 月 25-26 日举行高通预热 2023 骁龙峰会:以AI为主题,10 月 25-26 日举行

    【环球网科技综合报道】10月17日消息,高通今日对 2023 骁龙峰会进行了预热,本次大会将以 %ign%ignore_a_1%re_a_1% 为主题,届时骁龙 8 gen 3 处理器也很大可能在本届峰会亮相。 在临近活动召开之日,相关业内人士也透露了高通骁龙8Gen3跑分及规格。据悉,高通骁龙8 …

    2026年5月10日 用户投稿
    000
  • pycharm解析器怎么添加 解析器添加详细流程

    在pycharm中添加解析器的步骤包括:1) 打开pycharm并进入设置,2) 选择project interpreter,3) 点击齿轮图标并选择add,4) 选择解析器类型并配置路径,5) 点击ok完成添加。添加解析器后,选择合适的类型和版本,配置环境变量,并利用解析器的功能提高开发效率。 在…

    2026年5月10日
    000
  • 虫虫漫画直接进入官网入口_虫虫漫画网页版清爽版

    虫虫漫画直接进入官网入口_虫虫漫画网页版清爽版虫虫漫画直接进入官网入口_虫虫漫画网页版清爽版虫虫漫画直接进入官网入口_虫虫漫画网页版清爽版虫虫漫画直接进入官网入口_虫虫漫画网页版清爽版

    虫虫漫画官网入口为www.ccmh.com,用户可直接通过浏览器访问,支持多端适配与账号同步功能,界面简洁无广告,提供海量国漫、日漫、韩漫资源,涵盖恋爱、玄幻等热门题材,更新及时,支持多种阅读模式及离线缓存,阅读体验流畅。 虫虫漫画直接进入官网入口在哪里?这是不少网友都关注的,接下来由PHP小编为大…

    2026年5月10日 用户投稿
    100
  • HTML文档如何工作?如何编辑HTML格式文件?

    HTML文档如何工作?如何编辑HTML格式文件?HTML文档如何工作?如何编辑HTML格式文件?HTML文档如何工作?如何编辑HTML格式文件?HTML文档如何工作?如何编辑HTML格式文件?

    浏览器解析和渲染html的过程包括:1. 解析html构建dom树;2. 结合css构建渲染树;3. 布局计算元素位置;4. 绘制像素到屏幕。编辑html可使用记事本、vs code、sublime text等文本或代码编辑器,其中vs code因语法高亮、自动补全和插件生态成为主流选择。标准htm…

    2026年5月10日 用户投稿
    000
  • 打印机怎么连接电脑 安装打印机图文教程

    打印机怎么连接电脑 安装打印机图文教程打印机怎么连接电脑 安装打印机图文教程打印机怎么连接电脑 安装打印机图文教程打印机怎么连接电脑 安装打印机图文教程

    许多用户购买了打印机后,常常不知道如何正确安装并连接到电脑。以下是详细的打印机安装步骤,供大家参考。 本地打印机的安装: 将打印机附带的光盘插入光驱。如果您的电脑没有光驱,可以将光盘中的文件复制到U盘,然后插入电脑。 启动光盘,系统会自动打开安装引导界面。如果是通过U盘复制文件,则需要找到并双击运行…

    2026年5月10日 用户投稿
    000
  • 硬盘数据被误删除怎么办?教你快速找回删除的文件!

    硬盘数据被误删除,别慌!恢复数据并非不可能,关键在于你接下来的操作。立刻停止对该硬盘的任何写入操作,然后尝试使用专业的数据恢复软件。 解决方案 首先,数据恢复的原理是,删除文件后,操作系统只是将文件占用的空间标记为“可覆盖”,但文件本身的数据可能还存在于硬盘上。所以,避免新的数据写入覆盖掉旧数据,是…

    2026年5月10日
    000
  • CodeIgniter在IIS环境下实现URL重写与index.php移除指南

    本教程详细指导如何在IIS服务器上部署的CodeIgniter应用中,移除URL中不必要的index.php。核心解决方案涉及修改CodeIgniter的config.php文件,将$config[‘index_page’]设置为空,并辅以正确的IIS web.config重…

    2026年5月10日
    100
  • Python官网用户调查的参与方式_Python官网反馈提交详细教程

    答案是通过访问Python官网新闻页面、邮件邀请链接或GitHub仓库提交反馈。具体为:访问官网查找用户调查公告,或点击邮件中的专属链接参与,在GitHub的cpython仓库提交技术建议,并注意如实填写问卷与保护隐私。 如果您希望参与Python官网的用户调查并提交反馈,可以通过官方指定的渠道完成…

    2026年5月10日
    000
  • Windows任务管理器查看HTML占用内存情况方法

    通过任务管理器可定位HTML页面内存占用过高的问题。首先使用Ctrl+Shift+Esc打开任务管理器,查看chrome.exe或msedge.exe各进程的内存使用情况;再通过Shift+Esc调用浏览器内置任务管理器,精准识别具体标签页的内存消耗;最后可用perfmon性能监视器长期监控浏览器进…

    2026年5月10日
    000
  • JavaScript Electron桌面应用

    答案:使用JavaScript开发%ignore_a_1%桌面应用需结合Web技术与Node.js,通过主进程管理窗口、渲染进程展示界面,并利用IPC通信,调用系统功能如文件对话框,最后用electron-builder打包发布,注意安全与进程职责分离。 用JavaScript开发Electron桌…

    2026年5月10日
    000

发表回复

登录后才能评论
关注微信