Excel中使用MOD函数,将有规律的一维多项数据,整理为结构化的二维表

在这里插入图片描述
拿到的数据,尤其是某些系统导出的数据,经常是一维的表,且里面是多项有规律的数据。如上图左边所示。这时候就需要将其整理为结构化的二维表。如上图右边所示。

思路

数据的规律是每项包含三类数据,姓名,性别和年龄,在一维表中三个一组。所以可以考虑用取3的余数来分组,也就是EXCEL中的MOD函数。

公式拆解,使用辅助列方式

1.首先获取行号,使用=ROW()
如下图:
在这里插入图片描述
2.然后对行号取除3之后的余数:
在这里插入图片描述
得到重复的1,2.0
3.根据余数,进行判断,余数为1是姓名,2是性别,3是年龄。
使用if进行判断,取出姓名:
在这里插入图片描述
4.因为取出的性别和年龄要和姓名在一行中,所以判断为1的时候,分别取姓名下一格和下两格的数据:
在这里插入图片描述
5.拷贝获得的三列数据,粘贴到别处,注意一定要粘贴为值
在这里插入图片描述
6.排序(降序排列),去除空白行,得到如下二维表,就是我们需要的结果,加上标题行
在这里插入图片描述

不使用辅助列,整合之后的公式

在这里插入图片描述
视频教程:

非系统最实用EXCEL函数公式-MOD的神奇用法-整理有规律的单列数据

### 使用MATLAB将三列非单调数据转换为二维映射以进行查表操作 为了在MATLAB中有效地将三列非单调的数据转换成可以用于查表的二维映射,通常需要先对这些数据进行预处理。这包括插值、网格化和平滑等过程,以便创建一个连续且可查询的地图结构。 #### 数据准备与初始化 假设存在三个向量 `X`、`Y` 和 `Z` 表示位置坐标及其对应的测量值或属性值: ```matlab % 假设 X, Y 是两个独立变量的位置坐标,而 Z 则代表依赖于 (X,Y) 的响应值 data = load('your_data_file.mat'); % 加载包含原始数据集的 .mat 文件 X = data(:,1); Y = data(:,2); Z = data(:,3); scatter3(X, Y, Z); % 可视化散点图查看分布情况 xlabel('X Axis'); ylabel('Y Axis'); zlabel('Response Value'); title('Original Data Distribution'); ``` #### 创建规则化的网格并执行插值 由于输入数据可能是不均匀分布甚至是稀疏的,因此有必要建立一个更密集且规律排列的新采样区域来进行后续分析。这里采用线性插值作为例子说明如何生成平滑过渡的效果。 ```matlab % 定义新的范围和分辨率 min_x = min(X); max_x = max(X); min_y = min(Y); max_y = max(Y); resolution = 0.5; % 设置目标栅格大小 [Xi, Yi] = meshgrid(min_x:resolution:max_x, min_y:resolution:max_y); Zi = griddata(X, Y, Z, Xi, Yi, 'linear'); surf(Xi, Yi, Zi); shading interp; colorbar; xlabel('X Coordinate'); ylabel('Y Coordinate'); zlabel('Interpolated Response'); title('Interpolated Surface Plot from Original Points'); ``` 上述代码片段展示了如何利用 `meshgrid()` 函数定义一个新的矩形域,并通过调用 `griddata()` 来填充该区域内未知点处的估计数值[^1]。 #### 构建查找表功能 一旦拥有了经过插值得到的光滑表面,则可以通过简单的索引来获取任意给定点附近的近似解。下面给出了一种简易的方式实现这一目的: ```matlab function z_val = lookup_2d_map(x_query, y_query, xi_grid, yi_grid, zi_matrix) % 找到最接近询问坐标的网格单元中心 [~, idx_closest] = min((xi_grid(:)-x_query).^2 + ... (yi_grid(:)-y_query).^2); row_idx = floor(sqrt(idx_closest)); col_idx = mod(idx_closest-1,floor(numel(xi_grid)/sqrt(idx_closest)))+1; z_val = zi_matrix(row_idx,col_idx); end ``` 此自定义函数接受四个参数——查询点 `(x_query,y_query)` 以及由前面步骤产生的三维矩阵形式的插值结果 `[Xi,Yi,Zi]` —— 并返回对应位置上的高度/强度信息 `z_val`。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值