【代码】矩阵的线性映射(平面转换)

相同x、y坐标下,改变z坐标

如下图所示,希望将原矩阵由上面的平面转换到下面的平面

已知上面平面所有点的三维坐标和下面平面的角点(四个顶点)的三维坐标

代码:

matlab 复制代码
function main()
%矩阵线性变换,相同x、y,仅z坐标不同的两个平面相互转换
clc
clear
close all
%% 0.原始数据、目标数据
x=[1,2,3,4,5];
y=[1,2,3]*10;
%原始数据
res_ori=[1,2,3,4,5;
    2,3,4,5,6;
    3,4,5,6,7];
%目标数据
% res_tar=[5,4,3,2,1;
%     6,5,4,3,2;
%     7,6,5,4,3]*-1;

%% 1.目标数据的角点
r11=-5;
r12=-1;
r21=-7;
r22=-3;
mat_tar_cor=[r11,r12;r21,r22];%目标矩阵(平面)的四个角点
%% 2.目标数据
results=trans_func(res_ori,mat_tar_cor);

%% 3.画图
[X,Y]=meshgrid(x,y); 
mesh(X,Y,res_ori)
hold on
mesh(X,Y,results)

trans_func.m

matlab 复制代码
function results=trans_func(mat_ori,mat_tar)
%线性映射
rrr=mat_ori;
qwe=mat_tar;
q1=length(rrr(1,:));%列数
q2=length(rrr(:,1));%行数
for i=1:q1
    qweqwe(1,i)=(qwe(1,2)-qwe(1,1))/(rrr(1,q1)-rrr(1,1))*(rrr(1,i)-rrr(1,1))+qwe(1,1);
end
for i=1:q1
    qweqwe(q2,i)=(qwe(2,2)-qwe(2,1))/(rrr(1,q1)-rrr(1,1))*(rrr(1,i)-rrr(1,1))+qwe(2,1);
end

for j=1:q1%列
    for i=1:q2%行
        qweqwe(i,j)=(qweqwe(q2,j)-qweqwe(1,j))/(rrr(q2,j)-rrr(1,j))*(rrr(i,j)-rrr(1,j))+qweqwe(1,j);
    end
end
results=qweqwe;
相关推荐
云登指纹浏览器4 小时前
做TikTok矩阵号用什么指纹浏览器?2026年实战横评
线性代数·矩阵
陈天伟教授1 天前
【30天学会机械制图 第4天】项目一 从平面图形开始 任务1 按标准来画图,秒懂!
人工智能·平面·ai编程·具身智能机器人技术·机械制图
陈天伟教授2 天前
【30天学会机械制图】项目一 从平面图形开始 任务1 机械制图国家标准篇
平面
陈天伟教授2 天前
【30天学会机械制图】项目一 从平面图形开始 任务1 按标准来画图,都懂你!
大数据·人工智能·平面·机器人·具身智能机器人技术
ltqvibe2 天前
Agent OS:企业智能体的控制平面
人工智能·平面·agent·智能体·企业ai
民乐团扒谱机2 天前
【微实验】线性代数之——奇异值分解 SVD:穿透数据迷雾的“X光机”,附 MATLAB 全流程仿真
线性代数·算法·matlab
随风而飘1862 天前
罗德与施瓦茨 R&S ZN-Z84多端口可配置射频开关矩阵
线性代数·矩阵
玫瑰互动GEO3 天前
从分词逻辑到权重计算:小红书搜索SEO的技术原理与工程实现
矩阵·dubbo
三言老师3 天前
kubeadm + haproxy + keepalived 三节点高可用控制平面
linux·服务器·平面·容器·kubernetes
l1t3 天前
利用DuckDB luajit插件和openblas库对表中数据做矩阵运算
数据库·线性代数·矩阵·duckdb