[解决方案]excel2010分析工具库无法运行“ FUNCRES.NLAM! Showatpdialog"”宏

问题描述:

2010版excel32位,加载过分析工具库后,运行出现如下异常

无法运行“ FUNCRES.NLAM! Showatpdialog"”宏。可能是因为该宏在此工作簿中不可用,或者所有的宏都被禁用。

从网上找了以下几种方法:
信任中心设置为启用所有宏——无用!而且这种操作本身也不利于文件安全性!
设置好后重启文件——无效

在尝试过程中发现,安装的该版本office,连录制宏都不行(提示:不能记录)
(因为网上教程说excel2010版自带使用帮助搜索器,对于学习比较好。)
在这里插入图片描述

解决方案:

重新安装2016版对应系统64位的,即可用
(怀疑就是32位的office和64位系统兼容性问题)

set.seed(0) n = 50 p = 30 x = matrix(rnorm(n*p),nrow=n) bstar = c(runif(30,0.5,1)) mu = as.numeric(x%*%bstar) par(mar=c(4.5,4.5,0.5,0.5)) hist(bstar,breaks=30,col="gray",main="", xlab="True coefficients") library(MASS) set.seed(1) R = 100 nlam = 60 lam = seq(0,25,length=nlam) fit.ls = matrix(0,R,n) fit.rid = array(0,dim=c(R,nlam,n)) err.ls = numeric(R) err.rid = matrix(0,R,nlam) for (i in 1:R) { cat(c(i,", ")) y = mu + rnorm(n) ynew = mu + rnorm(n) a = lm(y~x+0) bls = coef(a) fit.ls[i,] = x%*%bls err.ls[i] = mean((ynew-fit.ls[i,])^2) aa = lm.ridge(y~x+0,lambda=lam) brid = coef(aa) fit.rid[i,,] = brid%*%t(x) err.rid[i,] = rowMeans(scale(fit.rid[i,,],center=ynew,scale=F)^2) } aveerr.ls = mean(err.ls) aveerr.rid = colMeans(err.rid) bias.ls = sum((colMeans(fit.ls)-mu)^2)/n var.ls = sum(apply(fit.ls,2,var))/n bias.rid = rowSums(scale(apply(fit.rid,2:3,mean),center=mu,scale=F)^2)/n var.rid = rowSums(apply(fit.rid,2:3,var))/n mse.ls = bias.ls + var.ls mse.rid = bias.rid + var.rid prederr.ls = mse.ls + 1 prederr.rid = mse.rid + 1 bias.ls var.ls p/n prederr.ls aveerr.ls cbind(prederr.rid,aveerr.rid) par(mar=c(4.5,4.5,0.5,0.5)) plot(lam,prederr.rid,type="l", xlab="Amount of shrinkage",ylab="Prediction error") abline(h=prederr.ls,lty=2) text(c(1,24),c(1.48,1.48),c("Low","High")) legend("topleft",lty=c(2,1), legend=c("Linear regression","Ridge regression")) par(mar=c(4.5,4.5,0.5,0.5)) plot(lam,mse.rid,type="l",ylim=c(0,max(mse.rid)), xlab=expression(paste(lambda)),ylab="") lines(lam,bias.rid,col="red") lines(lam,var.rid,col="blue") abline(h=mse.ls,lty=2) legend("bottomright",lty=c(2,1,1,1), legend=c("Linear MSE","Ridge MSE","Ridge Bias^2","Ridge Var"), col=c("black","black","red","blue")) 为每句代码加上注释解释
05-23
%% 1. 数据加载与单位转换 clc; clear; close all; % 假设数据存储在'voltage_data.mat'中,变量名为v和t load('matlab.mat'); % 加载原始电压数据(v)和时间序列(t) v=rand(1550000,1) Fs = 50000; % 采样率50kHz v = v - mean(v); % 去除直流分量 % 电压到压强的转换: 0.012V = 10Pa → 1V = 10/0.012 ≈ 833.33Pa p = v * (10 / 0.012); % 转换后的压强信号(Pa) t = t - t(1); % 时间归零 %% 2. 信号预处理 % 低通滤波(截止频率2kHz) fc = 2000; % 截止频率 [b,a] = butter(4, fc/(Fs/2), 'low'); p_filt = filtfilt(b,a,p); % 降采样(可选,减少计算量) decim_factor = 10; % 降采样因子 p_ds = decimate(p_filt, decim_factor); Fs_ds = Fs/decim_factor; % 新采样率5kHz t_ds = t(1:decim_factor:end); %% 3. 递归分析参数设置 % 相空间重构参数 m = 3; % 嵌入维度(需根据数据优化) tau = 50; % 延迟点数(对应时间延迟tau/Fs_ds秒) % RQA参数 radius = 0.3; % 递归阈值(标准差的倍数) norm_type = 'euc'; % 距离范数('euc'欧式/'max'最大范数) %% 4. 相空间重构 % 生成时滞嵌入矩阵 N = length(p_ds); L = N - (m-1)*tau; embedded = zeros(L, m); for i = 1:m embedded(:,i) = p_ds((1:L) + (i-1)*tau); end %% 5. 计算递归图 % 计算距离矩阵 distance_matrix = pdist2(embedded, embedded, norm_type); % 生成递归矩阵 threshold = radius * std(embedded(:)); % 自适应阈值 RP = (distance_matrix <= threshold); %% 6. RQA指标计算 % 递归率 (RR) RR = sum(RP(:))/(length(RP)^2 - length(RP)); % 对角线结构分析 [l_stats, hist] = recurrence_diag_analysis(RP); % 常用RQA指标 DET = l_stats.DET; % 确定性 L_mean = l_stats.L; % 平均对角线长度 LAM = l_stats.LAM; % 层流性 ENTR = l_stats.ENTR;% 熵 %% 7. 可视化结果 figure('Position', [100 100 1200 500]) % 递归图 subplot(1,2,1); imagesc(t_ds(1:L), t_ds(1:L), RP); colormap([1 1 1; 0 0 0]); % 黑白显示 xlabel('时间 (s)'); ylabel('时间 (s)'); title(sprintf('递归图 (m=%d, τ=%d, ε=%.2fσ)', m, tau, radius)); % 原始信号对比 subplot(1,2,2); plot(t_ds, p_ds); xlabel('时间 (s)'); ylabel('压强 (Pa)'); title('预处理后的压强信号'); % 输出RQA指标 fprintf('RQA指标:\n'); fprintf('递归率 RR = %.4f\n', RR); fprintf('确定性 DET = %.4f\n', DET); fprintf('平均对角线长度 L = %.4f\n', L_mean); fprintf('熵 ENTR = %.4f\n', ENTR); %% 自定义函数:对角线结构分析 function [stats, histogram] = recurrence_diag_analysis(RP) [N, ~] = size(RP); histogram = zeros(N,1); % 主对角线分析(排除中央对角线) for k = 1:N-1 diag_seq = di
最新发布
03-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值