You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Buckingham Pi定理计算中MATLAB统计唯一符号数量的问题

MATLAB实现Buckingham Pi定理维度符号统计

核心需求

统计预设维度符号M、L、T、Theta在变量元胞数组param的每个维度字符串中是否出现(只要出现至少一次即计数为1,重复出现不重复计数),解决cellfun报错问题(适配MATLAB 2021b mlx环境)。

实现代码

% 替换为你的实际变量维度元胞数组
param = {'M L^2 T^-2', 'L T^-1', 'M Theta', 'L^3', 'T'};

% 预设维度符号集合
dim_symbols = {'M', 'L', 'T', 'Theta'};
[num_params, num_symbols] = deal(length(param), length(dim_symbols));

% 初始化计数矩阵:行=变量,列=维度符号,1=出现,0=未出现
count_matrix = zeros(num_params, num_symbols);

% 遍历每个变量的维度字符串
for i = 1:num_params
    current_dim = param{i};
    % 检查每个维度符号是否存在
    for j = 1:num_symbols
        target_sym = dim_symbols{j};
        % 用单词边界正则匹配,避免子串误识别
        if ~isempty(regexp(current_dim, ['\b', target_sym, '\b'], 'once'))
            count_matrix(i,j) = 1;
        end
    end
end

% 输出结果
disp('维度符号出现计数矩阵(行:变量,列:M、L、T、Theta):');
disp(count_matrix);

关键说明

  1. 避开cellfun报错:MATLAB 2021b中cellfun对匿名函数的参数兼容性有限,改用双层循环更稳定,也便于调试。
  2. 正则匹配逻辑:\b是单词边界,确保只匹配独立的维度符号,比如不会把'M'误匹配为'MTheta'的一部分。
  3. 结果用途:count_matrix可直接用于构建无量纲群的线性方程组,通过计算矩阵秩确定独立Pi项的数量。

内容的提问来源于stack exchange,提问作者WnGatRC456

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 03:35:21