Matlab中安装NURBS工具箱及使用

该文详细介绍了如何在MATLAB中安装NURBS工具箱,包括从附加功能中搜索下载,解压并添加到MATLAB路径。此外,还提供了NURBS结构的解析,如控制顶点、节点向量的概念,并通过实例展示了创建二维线、平面以及度数提升算法的使用方法。最后,文章解释了MATLAB中的cat函数用于串联数组的操作。

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


前言

只是为方便学习,不做其他用途,
学习等几何的时候编程用到NURBS函数,学习安装NURBS工具箱及使用

一、NURBS工具箱的安装

1 打开matlab,点击附加功能

在这里插入图片描述
出现如下页面,点击”产品“ :
在这里插入图片描述

2 输入nurbs

在这里插入图片描述下拉,找到如下NURBS Toolbox by D.M. Spink工具箱 :
在这里插入图片描述
点击 NURBS Toolbox by D.M. Spink

在这里插入图片描述 选下载,可能需要你注册账号,按要求注册好账号就可以下载了。

3 下载后压缩包解压

在这里插入图片描述

4 将解压后的文件夹放到matlab文件夹的toolbox文件夹里面

在这里插入图片描述
然后添加路径 :

  • 点击 设置路径
  • 将刚才的文件夹添加到路径中 注意要选包含子文件夹-----》保存-----》关闭

在这里插入图片描述

5 选择“预设路径”上方的“预设”

在这里插入图片描述

二、NURBS工具箱的使用

2.1 NURBS 结构:

曲线和曲面都由一个结构表示与 Mathworks 的样条工具箱兼容

nurbs.form … 输入名称’B-NURBS’
nurbs.dim … 控制点的尺寸= 4(x,y,z,w)
nurbs.number … 控制顶点个数
nurbs.coefs … 控制顶点坐标
nurbs.order … 样条的顺序?
nurbs.knots … 节点向量

2.2 对NURBS工具箱的初步理解

案例1:
构造一条从 (0,0) 到 (1.5,3) 的二维线.对于直线,需要 2 阶样条。 请注意,节点向量在开始 (0.0,0.0) 和结束 (1.0 1.0) 处的重数为 2,以满足端点插值性。

代码:

clear;
clc;
coef = [0.0 1.5; 0.0 3.0];    % 控制顶点
konts = [0.0 0.0 1.0 1.0];    % 节点向量
line = nrbmak(coef,konts);    % nrbmak(coef,konts)--给定控制顶点和节点向量,构造NURBS结构
figure(1)
nrbplot(line, 2);

在这里插入图片描述

line.coef: 对应nurbs曲线的坐标

在这里插入图片描述

line.konts: 对应nurbs曲线的节点向量

在这里插入图片描述
在这里插入图片描述

案例2:
在x-y平面上构造一个平面。

clear;
clc;

coefs = cat(3,[0 0; 0 1],[1 1; 0 1]);      
%控制顶点(0 0)  (0 1)  (1 0)  (1 1)
knots = {[0 0 1 1]  [0 0 1 1]}; 
%节点向量u = [0 0 1 1];  v = [0 0 1 1]
plane = nrbmak(coefs,knots); 
figure(2)
nrbplot(plane, [2 2]); 
     

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

例3:度数提升算法

clear;
clc;
pnts = [0.5 1.5 4.5 3.0 7.5 6.0 8.5; 
        3.0 5.5 5.5 1.5 1.5 4.0 4.5; 
        0.0 0.0 0.0 0.0 0.0 0.0 0.0]; 
crv = nrbmak(pnts,[0 0 0 1/4 1/2 3/4 3/4 1 1 1]); 
% 绘制控制点 
plot(crv.coefs(1,:),crv.coefs(2,:),'bo')    %画曲线的控制顶点
title('测试曲线度数提升1'); 
hold on; 
plot(crv.coefs(1,:),crv.coefs(2,:),'b--');   %画控制多边形,将控制顶点依次用直线连接
 
% 绘制Nurbs曲线 
nrbplot(crv,48); 
 
% 度提升的曲线 by 1 
icrv = nrbdegelev(crv, 1); 
nrbplot(icrv,50)
% 插入新的结点并绘制新的控制点 
plot(icrv.coefs(1,:),icrv.coefs(2,:),'ro') %画点
plot(icrv.coefs(1,:),icrv.coefs(2,:),'r--'); %连线
 
hold off;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3 matlab中cat函数

cat函数 串联数组:

语法:
C = cat(dim,A,B)
C = cat(dim,A1,A2,…,An)

说明:
1、当 A 和 B 具有兼容的大小(除运算维度 dim 以外的维度长度匹配)时,C = cat(dim,A,B) 沿维度 dim 将B串联到A的末尾。
2、C = cat(dim,A1,A2,…,An) 沿维度dim串联A1、A2、…、An。
3、可以使用方括号运算符[]进行串联。例如,[A,B]或[A B]将水平串联数组A和B,而[A; B]将垂直串联它们。

示例:创建两个矩阵,先垂直串联这两个矩阵,然后再水平串联。
A = ones(3)
A = 3×3
 
     1     1     1
     1     1     1
     1     1     1
 
B = zeros(3)
B = 3×3
 
     0     0     0
     0     0     0
     0     0     0
 
C1 = cat(1,A,B)
C1 = 6×3
 
     1     1     1
     1     1     1
     1     1     1
     0     0     0
     0     0     0
     0     0     0
 
C2 = cat(2,A,B)
C2 = 3×6
 
     1     1     1     0     0     0
     1     1     1     0     0     0
     1     1     1     0     0     0
示例2:创建一个包含两个矩阵的元胞数组,并分别以垂直方式和水平方式串联这两个矩阵。
M1 = [1 2; 3 4];
M2 = [5 6; 7 8];
A1 = {M1,M2};
Cvert = cat(1,A1{:})
 
Cvert = 4×2
 
     1     2
     3     4
     5     6
     7     8
 
Chorz = cat(2,A1{:})
 
Chorz = 2×4
 
     1     2     5     6
     3     4     7     8
     
Cver3 = cat(3,A1{:})

Cver3(:,:,1) =

     1     2
     3     4


Cver3(:,:,2) =

     5     6
     7     8
1 2/3维图像分割工具箱 2 PSORT粒子群优化工具箱 3 matlab计量工具箱Lesage 4 MatCont7p1 5 matlab模糊逻辑工具箱函数 6 医学图像处理工具箱 7 人工蜂群工具箱 8 MPT3安装包 9 drEEM toolbox 10 DOMFluor Toolbox v1.7 11 Matlab数学建模工具箱 12 马尔可夫决策过程(MDP)工具箱MDPtoolbox 13 国立SVM工具箱 14 模式识别与机器学习工具箱 15 ttsbox1.1语音合成工具箱 16 分数阶傅里叶变换的程序FRFT 17 魔方模拟器与规划求解 18 隐马尔可夫模型工具箱 HMM 19 图理论工具箱GrTheory 20 自由曲线拟合工具箱ezyfit 21 分形维数计算工具箱FracLab 2.2 22 For-Each 23 PlotPub 24 Sheffield大学最新遗传算法工具箱 25 Camera Calibration 像机标定工具箱 26 Qhull(二维三维三角分解、泰森图)凸包工具箱 2019版 27 jplv7 28 MatlabFns 29 张量工具箱Tensor Toolbox 30 海洋要素计算工具箱seawater 31 地图工具箱m_map 32 othercolor配色工具包 33 Matlab数学建模工具箱 34 元胞自动机 35 量子波函数演示工具箱 36 图像局域特征匹配工具箱 37 图像分割graphcut工具箱 38 NSGA-II工具箱 39 chinamap中国地图数据工具箱(大陆地区) 40 2D GaussFit高斯拟合工具箱 41 dijkstra最小成本路径算法 42 多维数据快速矩阵乘法 43 约束粒子群优化算法 44 脑MRI肿瘤的检测与分类 45 Matlab数值分析算法程序 46 matlab车牌识别完整程序 47 机器人工具箱robot-10.3.1 48 cvx凸优化处理工具箱 49 hctsa时间序列分析工具箱 50 神经科学工具箱Psychtoolbox-3-PTB 51 地震数据处理工具CREWES1990版 52 经济最优化工具箱CompEcon 53 基于约束的重构分析工具箱Cobratoolbox 54 Schwarz-Christoffel Toolbox 55 Gibbs-SeaWater (GSW)海洋学工具箱 56 光声仿真工具箱K-Wave-toolbox-1.2.1 57 语音处理工具箱Sap-Voicebox 58 贝叶斯网工具箱Bayes Net Toolbox(BNT) 59 计算机视觉工具箱VFfeat-0.9.21 60 全向相机校准工具箱OCamCalib_v3.0 61 心理物理学数据分析工具箱Palamedes1_10_3 62 生理学研究工具箱EEGLAB 63 磁共振成像处理工具箱CONN 18b 64 matlab 复杂网络工具箱 65 聚类分析工具箱FuzzyClusteringToolbox 66 遗传规划matlab工具箱 67 粒子群优化工具箱 68 数字图像处理工具箱DIPUM Toolbax V1.1.3 69 遗传算法工具箱 70 鱼群算法工具箱OptimizedAFSAr 71 蚁群算法工具箱 72 matlab优化工具箱 73 数据包络分析工具箱 74 图像分割质量评估工具包 75 相关向量机工具箱 76 音频处理工具箱 77 nurbs工具箱 78 Nurbs-surface工具箱 79 grabit数据提取工具箱 80 量子信息工具箱QLib 81 DYNAMO工具箱 82 NEDC循环的整车油耗量 83 PlotHub工具箱 84 MvCAT_Ver02.01 85 Regularization Tools Version 4.1 86 MatrixVB 4.5(含注册) 87 空间几何工具箱 matGeom-1.2.2 88 大数计算工具箱 VariablePrecisionIntegers 89 晶体织构分析工具包 mtex-5.7.0 90 Minimal Paths 2工具箱 91 Matlab数学建模工具箱
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值