SE王老师说....

博客建议先专注学精一门语言,之后再去学习其他语言,强调了学习语言应循序渐进、逐个攻克的思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现在先学精一门语言,以后再学其他语言
矫正上面代码的位置,目前每个数据之间位置出现了畸变%data=12; % 创建一个UI界面 fig = uifigure('Name', '舱体电磁泄漏评估系统', 'Position', [100, 100, 800, 600]); % 设置 UI Figure 的图标 iconPath = '3d.png'; % 替换为你自定义图标的路径 fig.Icon = iconPath; % 创建一个绘图轴 ax = uiaxes(fig, 'Position', [50, 100, 700, 450]); %王老师,这个只计算一半的话这样就可以,但是需要你确定你那边输出的文件名字是什么,这个需要确定锁死的,最好就是直接输出到代码所在的文件路径下面,可以一直给我固定文件名字的,我代码后面加了一个clear,重复读取报错记录比较小了,但是不清楚你那边覆盖方便吗 %王老师,这个只计算一半的话这样就可以,但是需要你确定你那边输出的文件名字是什么,这个需要确定锁死的,最好就是直接输出到代码所在的文件路径下面,可以一直给我固定文件名字的,我代码后面加了一个clear,重复读取报错记录比较小了,但是不清楚你那边覆盖方便吗 %filename = data; folder_path='E:\611辅材项目\3d'; full_filename = fullfile('12.txt'); %full_filename = fullfile(folder_path, [filename '.txt']); %filename = [folder_path,'\',num2str(data), '.txt']; %王老师,这个只计算一半的话这样就可以,但是需要你确定你那边输出的文件名字是什么,这个需要确定锁死的,最好就是直接输出到代码所在的文件路径下面,可以一直给我固定文件名字的,我代码后面加了一个clear,重复读取报错记录比较小了,但是不清楚你那边覆盖方便吗 A1 = importdata(full_filename); % % 提示用户输入文件名 % filename = input('请输入文件名(包含扩展名,例如:data.txt):', 's'); % % 检查文件是否存在 % if isfile(filename) % % 读取TXT文件内容 % A1 = importdata(filename); % 假设是以制表符分隔的表格数据 % % 显示读取的数据 % disp('文件内容已成功导入:'); % disp(A1); % else % disp('文件不存在,请检查文件名并重试。'); % end % A2 = importdata('源在内部,盖盖子,位置1.txt'); %不知道另一半还测试吗,不测试的话就不用管,直接注释掉就好 SE1=NaN(16,20); for i = 1:16 for j = 1:20 SE1(i,j) = A1((i-1)*20 + j); end end%不知道还测试吗?理由同上 SE2 = NaN(16, 20); % 预分配矩阵大小 for i = 17:32 for j = 1:20 SE2(i-16,j) = A1((i-1)*20 + j); end end m=max(max(SE2)); % 加载保存的 Points 和 ConnectivityList load('geometry_data.mat', 'Points', 'ConnectivityList'); % 计算Y轴的平均值作为中间值 y_mid = mean(Points(:,2)); % 第一部分:Y轴小于平均值的面片 mask_lower = Points(:,2) < y_mid; filteredFaces_lower = ConnectivityList(all(mask_lower(ConnectivityList), 2), :); % 第二部分:Y轴大于平均值的面片 mask_upper = Points(:,2) > y_mid; filteredFaces_upper = ConnectivityList(all(mask_upper(ConnectivityList), 2), :); % 检查过滤后的面片是否为空 if isempty(filteredFaces_lower) uialert(fig, '过滤后的小于平均值部分的面片为空。', '错误'); return; end if isempty(filteredFaces_upper) uialert(fig, '过滤后的大于平均值部分的面片为空。', '错误'); return; end % Z轴均分 z_min = min(Points(:,3)); z_max = max(Points(:,3)); z_bins = linspace(z_min, z_max, 17); % 16份区间 % X轴步进 x_min = min(Points(:,1)); x_max = max(Points(:,1)); x_step = 80; % 设置步进值,此处100对应步进为10cm x_bins = x_min:x_step:x_max; % 分别定义两个矩阵 matrix_lower = SE2; % 对应Y轴小于平均值的矩阵 matrix_upper = SE1; % 对应Y轴大于平均值的矩阵 % 准备可视化的颜色矩阵 vertexColors_lower = NaN(size(Points, 1), 1); % 初始化为 NaN vertexColors_upper = NaN(size(Points, 1), 1); % 初始化为 NaN % 分配颜色值 (针对小于平均值的部分) for i = 1:size(matrix_lower, 1) z_bin = (Points(:,3) >= z_bins(i) & Points(:,3) < z_bins(i+1)); for j = 1:size(matrix_lower, 2) x_bin = (Points(:,1) >= x_bins(j) & Points(:,1) < x_bins(j+1)); if any(z_bin) && any(x_bin) vertexColors_lower(z_bin & x_bin) = matrix_lower(i, j); end end end % 分配颜色值 (针对大于平均值的部分) for i = 1:size(matrix_upper, 1) z_bin = (Points(:,3) >= z_bins(i) & Points(:,3) < z_bins(i+1)); for j = 1:size(matrix_upper, 2) x_bin = (Points(:,1) >= x_bins(j) & Points(:,1) < x_bins(j+1)); if any(z_bin) && any(x_bin) vertexColors_upper(z_bin & x_bin) = matrix_upper(i, j); end end end % 分配面片颜色值 faceColors_lower = NaN(size(filteredFaces_lower, 1), 1); % 初始化为 NaN faceColors_upper = NaN(size(filteredFaces_upper, 1), 1); % 初始化为 NaN % 小于平均值部分的面片颜色 for i = 1:size(filteredFaces_lower, 1) faceVerts = filteredFaces_lower(i, :); faceX = Points(faceVerts, 1); faceZ = Points(faceVerts, 3); x_bins_idx = find(faceX >= x_bins(1:end-1) & faceX < x_bins(2:end)); z_bins_idx = find(faceZ >= z_bins(1:end-1) & faceZ < z_bins(2:end)); if ~isempty(x_bins_idx) && ~isempty(z_bins_idx) x_bin = x_bins_idx(1); z_bin = z_bins_idx(1); x_bin = min(max(x_bin, 1), size(matrix_lower, 2)); z_bin = min(max(z_bin, 1), size(matrix_lower, 1)); faceColors_lower(i) = matrix_lower(z_bin, x_bin); end end % 大于平均值部分的面片颜色 for i = 1:size(filteredFaces_upper, 1) faceVerts = filteredFaces_upper(i, :); faceX = Points(faceVerts, 1); faceZ = Points(faceVerts, 3); x_bins_idx = find(faceX >= x_bins(1:end-1) & faceX < x_bins(2:end)); z_bins_idx = find(faceZ >= z_bins(1:end-1) & faceZ < z_bins(2:end)); if ~isempty(x_bins_idx) && ~isempty(z_bins_idx) x_bin = x_bins_idx(1); z_bin = z_bins_idx(1); x_bin = min(max(x_bin, 1), size(matrix_upper, 2)); z_bin = min(max(z_bin, 1), size(matrix_upper, 1)); faceColors_upper(i) = matrix_upper(z_bin, x_bin); end end % 在一个坐标系中绘制两个部分 h = trisurf(filteredFaces_lower, Points(:,1), Points(:,2), Points(:,3), ... 'Parent', ax, 'FaceVertexCData', vertexColors_lower, 'FaceColor', 'interp', 'EdgeColor', 'none'); hold(ax, 'on'); % 叠加第二部分 h2 = trisurf(filteredFaces_upper, Points(:,1), Points(:,2), Points(:,3), ... 'Parent', ax, 'FaceVertexCData', vertexColors_upper, 'FaceColor', 'interp', 'EdgeColor', 'none'); % 设置透明度 alphaData_lower = ~isnan(faceColors_lower); set(h, 'FaceAlpha', 'flat', 'AlphaDataMapping', 'none', 'FaceVertexAlphaData', double(alphaData_lower)); % 更新第二部分的透明度设置 alphaData_upper = ~isnan(faceColors_upper); set(h2, 'FaceAlpha', 'flat', 'AlphaDataMapping', 'none', 'FaceVertexAlphaData', double(alphaData_upper)); % 添加交互式视角旋转 rotate3d(ax, 'on'); % 添加颜色条 colorbar(ax, 'Position', [0.9, 0.1, 0.03, 0.8]); % 设置颜色条的位置和大小 % 设置颜色条的标签 colormap(ax, jet); % 选择颜色映射,可以根据需要更改 clim(ax, [25,m]); % 设置颜色条对应的数据范围 % 添加标题 title(ax, '舱体电磁泄漏'); clear end
06-30
资源下载链接为: https://pan.quark.cn/s/d9ef5828b597 在本文中,我们将探讨如何通过 Vue.js 实现一个带有动画效果的“回到顶部”功能。Vue.js 是一款用于构建用户界面的流行 JavaScript 框架,其组件化和响应式设计让实现这种交互功能变得十分便捷。 首先,我们来分析 HTML 代码。在这个示例中,存在一个 ID 为 back-to-top 的 div 元素,其中包含两个 span 标签,分别显示“回到”和“顶部”文字。该 div 元素绑定了 Vue.js 的 @click 事件处理器 backToTop,用于处理点击事件,同时还绑定了 v-show 指令来控制按钮的显示与隐藏。v-cloak 指令的作用是在 Vue 实例渲染完成之前隐藏该元素,避免出现闪烁现象。 CSS 部分(backTop.css)主要负责样式设计。它首先清除了一些默认的边距和填充,对 html 和 body 进行了全屏布局,并设置了相对定位。.back-to-top 类则定义了“回到顶部”按钮的样式,包括其位置、圆角、阴影、填充以及悬停时背景颜色的变化。此外,与 v-cloak 相关的 CSS 确保在 Vue 实例加载过程中隐藏该元素。每个 .page 类代表一个页面,每个页面的高度设置为 400px,用于模拟多页面的滚动效果。 接下来是 JavaScript 部分(backTop.js)。在这里,我们创建了一个 Vue 实例。实例的 el 属性指定 Vue 将挂载到的 DOM 元素(#back-to-top)。data 对象中包含三个属性:backTopShow 用于控制按钮的显示状态;backTopAllow 用于防止用户快速连续点击;backSeconds 定义了回到顶部所需的时间;showPx 则规定了滚动多少像素后显示“回到顶部”按钮。 在 V
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值