许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  MATLAB基础教程:变量、矩阵、运算与编程入门

MATLAB基础教程:变量、矩阵、运算与编程入门

阅读数 42
点赞 0
article_banner

Matlab

clc : 清空命令行窗口

clear all : 清空工作区

Matlab的数据类型:

  • 数字
  • 字符和字符串
  • 矩阵 A = [1 2 3; 4 5 6; 7 8 9] A( : , 1:2) B = A’ % A的转置 C = A % 将A矩阵拉长,一列一列的拉长 D = inv(A) % A矩阵的逆 E = zeros(10, 5, 3) % 创建全是0的10行5列三维矩阵

运行结果:

   A =

 1     2     3
 4     5     6
 7     8     9

ans =

   1     2
   4     5
   7     8

B =

 1     4     7
 2     5     8
 3     6     9

C =

 1
 4
 7
 2
 5
 8
 3
 6
 9

警告: 矩阵接近奇异值,或者缩放错误。结果可能不准确。RCOND = 1.541976e-18。

D =

 1.0e+16 *

   -0.4504    0.9007   -0.4504
    0.9007   -1.8014    0.9007
   -0.4504    0.9007   -0.4504

E (:,:,1) =

 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0

E(:,:,2) =

 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0

E(:,:,3) =

 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0

rand生成均匀分布的伪随机数

randn生成 标准 正态分布的伪随机数

randi生成均匀分布的伪随机整数

E(:,:,1) = rand(10, 5)

E(:,:,2) = randi(5, 10, 5)

E(:,:,3) = randn(10, 5)

E(:,:,1) = rand(10, 5)

运行结果:

   E(:,:,1) =

0.1192    0.9937    0.7720    0.4849    0.7549
0.9398    0.2187    0.9329    0.3935    0.2428
0.6456    0.1058    0.9727    0.6714    0.4424
0.4795    0.1097    0.1920    0.7413    0.6878
0.6393    0.0636    0.1389    0.5201    0.3592
0.5447    0.4046    0.6963    0.3477    0.7363
0.6473    0.4484    0.0938    0.1500    0.3947
0.5439    0.3658    0.5254    0.5861    0.6834
0.7210    0.7635    0.5303    0.2621    0.7040
0.5225    0.6279    0.8611    0.0445    0.4423

E(:,:,2) =

 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0

E(:,:,3) =

 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0

E(:,:,2) = randi(5, 10, 5)

运行结果:

   E(:,:,1) =

 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0

E(:,:,2) =

 4     3     1     1     5
 3     4     1     3     1
 5     1     1     5     1
 3     4     4     5     1
 1     2     2     2     1
 1     1     3     2     4
 5     3     4     3     3
 3     1     3     4     1
 5     1     3     3     5
 2     2     3     2     4

E(:,:,3) =

 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0

E(:,:,3) = randn(10, 5)

运行结果:

  • E(:,:,1) = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 一键获取完整项目代码12345678910 E(:,:,2) = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 一键获取完整项目代码12345678910 E(:,:,3) = -1.1933 1.0533 -1.4245 0.5411 0.8535 0.6470 -0.7489 0.7174 -1.5409 -1.8530 -0.3536 -0.9363 -0.7779 -0.2031 -0.2073 0.0464 -1.2691 0.3160 -0.5000 0.2704 -0.7929 0.4980 1.4065 0.3830 -0.6528 -1.5505 2.7891 0.4011 0.4120 0.4772 0.1716 0.7276 0.9297 0.4055 -0.0713 -0.0621 -0.7731 -1.6058 -0.3638 -0.9383 1.1990 0.8366 0.6615 -0.5993 0.1614 0.8017 -1.1283 2.1385 -0.5896 -0.2682 一键获取完整项目代码12345678910
  • 元胞数组:一种数组,可以包含不同数据类型的元素的数组,相当于C语言中的结构体。 %% 元胞数组(可以储存:数字、、字符串、数组、元胞数组本身等) % 数组是只能储存数字或者字符的
a = [1, 5]
b = [2, 4, 3]
c = 'bilibili'
% 元胞数组的创建方式一:
A = {a, b, c}   % 元胞数组储存了a,b两个数组和一个字符串
% 元胞数组的创建方式二:
B = cell(1, 4)
% 元胞数组取值
% 取元胞数组A中第二个元素的值
% 使用花括号是取元胞数组里面的值
% 使用()是对元胞数组进行切割
A{2}    % 2 4 
A{1, 2} % 2 4 
A(1, 2) % 切割的是元胞数组
% 删除A的第二个元素
A(2) = []
  • map容器的使用
%% map容器的使用
weekMap = containers.Map({'Monday', 'Tuesday'},{1, 2});

% 查询
weekMap('Monday')

% 添加
weekMap('Friday') = 5;

% 检查map中的内容
keys(weekMap)
values(weekMap)
% 注意,返回的是元胞数组

% 连接两个map:
weekMap1 = containers.Map('Thursday', 4);
weekMap2 = [weekMap; weekMap1];  % 连接weekMap和weekMap1两个map
keys(weekMap2);

% 具有重复键名的Map对象的合并示例
m1 = containers.Map({1, 5, 8}, {'A', 'B', 'C'});
m2 = containers.Map({9, 8, 6}, {'X', 'Y', 'Z'});
m3 = [m1; m2];   %  分号是竖直串联,逗号是水平串联
keys(m3)
% ans =
% 
%   1×5 cell 数组
% 
%     {[1]}    {[5]}    {[6]}    {[8]}    {[9]}
values(m3)
% ans =
% 
%   1×5 cell 数组
% 
%     {'A'}    {'B'}    {'Z'}    {'Y'}    {'X'}
% 键按顺序排列,键值重复时,合并是后者覆盖前者

%% stlread的使用,以及法向量的获取
file = stlread('Test_Models/horse.stl');

F = faceNormal(file, 1);     % 获取索引值为1的三角面片的单位法向量
F = faceNormal(file);        % 获取所有三角面片的单位法向量

%% 数组的增删改查
% 查
A = [1, 2, 3; 4, 5, 6; 7, 8, 9]
A(2, 1)

% 改
A(2, 1) = 20 

% 增
b = [12, 23, 33]
[A; b]

% 转置
b'
[A, b']
% ans =
% 
%      1     2     3    12
%     20     5     6    23
%      7     8     9    33

% 将b插入A的第二行
[A(1, :); b; A(2:3, :)]         % 将b放在第一行后面的位置,A后面的行加在后面,就可以将b插入A数组的第二行了

% 删
% 删除第二行
% A(2, :)表示第二行的所有列":"表示从第几个到第几个
A(2,:) = []     % 给第二行赋值一个空的数组,那么第二行就会被删除

% 删除第二列
A(:, 2) = []    % 同样的给第二列赋空的数组

% size求数组各个维度的大小
size(A)

% length求维度最大的那一个
length(A)   
B = [1, 2, 3; 4, 5, 7; 8, 9, 11]    % 括号里的";"表示换行。
length(B)   % 最大的维度是3

% stlread的延伸
tic;
file = stlread('Test_Models/femur.stl');  
file.Points()   % 取出所有的点
file.ConnectivityList()     % 取出所有的索引值
toc

[TR,fileformat,attributes,solidID] = stlread('Test_Models/femur.stl');  % 返回 filename 的文件格式、属性(文件为二进制时)以及实体标识号(文件为文本时)
TR = stlread('Test_Models/金箔ASCII.stl');
triplot(TR);        % 输出三角剖分

  • 结构体 结构体相当于python中的字典(set)有键值对。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空