Posted on 

MATLAB基本语法

1
2
3
4
5
6
7
8
title: Hexo学习笔记
Date: 2022-11-17 02:56:59
tags: [Hexo,tang,tagdf ]
categories:
- [Sports, Baseball]
- [MLB, American League, Boston Red Sox]
- [MLB, American League, New York Yankees]
- Rivalries

[toc]

随机数生成

randperm:随机序列

  • 随机整数序列

    1
    randperm(19)

randi:指定范围,随机整数

在MATLAB中,我们可以使用randi函数来生成指定范围内的随机整数。这个函数的语法如下:

1
r = randi([a, b], m, n)

其中,ab是整数,表示所生成的随机整数的范围为[a, b]mn则是整数,指定了所生成的随机整数矩阵的大小。

保存变量

1
2
3
4
5
6
7
8
9
10
% 假设您有一个名为'example_variable'的变量
example_variable = [1, 2, 3, 4, 5];

% 指定保存的文件名和路径
file_name = 'my_saved_variable.mat';
full_path = '/your/desired/path/';

% 使用save函数保存变量
save(fullfile(full_path, file_name), 'example_variable');

分割地址(字符串)

在MATLAB中,你可以使用字符串处理函数来实现这个目标。以下是一个简单的MATLAB脚本示例,根据你的描述生成目标文件夹路径:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function targetFolderPath = generateTargetFolderPath(sourceFolderPath)
% 将源文件夹路径拆分为目录部分
parts = strsplit(sourceFolderPath, '\');

% 在第二个目录(即'MT项目')后添加'2'
parts{3} = [parts{3} '2'];
% 保留前两个目录,删除后面的目录
parts = parts(1:3);
% 删除第四个目录(假设你要删除第四个目录)
if numel(parts) >= 4
parts(4) = [];
end
% 重新构建目标文件夹路径
targetFolderPath = strjoin(parts, '\');
end

disp(targetFolderPath);

  • 其中parts是个cell类型

cell element

创建cell

1
cell_arr = {1,2;3,4}

cell_arr = 2×2 cell array

​ {[1]} {[2]} {[3]} {[4]}

对cell中的元素进行清空

1
cell_arr(2,:) = []

cell_arr = 1×2 cell array

​ {[1]} {[2]}

修改cell中的元素

1
cell_arr{2}=[12, 151]

cell_arr =

1×2 cell 数组

​ {[1]} {[12 151]}‘

try-catch-end用法

执行语句并捕获产生的错误 - MATLAB try catch

try-end结构,用于运行可能出错的代码。

1
2
3
4
try
% 尝试执行的语句E
end
% 如果E运行出错,跳过并从这里开始运行

try-catch-end结构

1
2
3
4
5
6
try
% 尝试执行的语句E
catch
% 如果E运行错误,
% 执行catch和end之间的代码块
end

xlswrite

这是Matlab中用于将数据写入Excel文件的语句,具体是使用xlswrite函数。让我逐步解释这个语句:

1
2
matlabCopy code
xlswrite(filename, SFoutputc(:,1), 2, ['G4:G' num2str(n*3+3)]);
  • xlswrite: 这是Matlab中的一个函数,用于将数据写入Excel文件。
  • filename: 这是Excel文件的名称,可以包括路径。
  • SFoutputc(:,1): 这是要写入Excel文件的数据。SFoutputc是一个矩阵或数组,(:,1)表示选择矩阵的第一列。
  • 2: 这是工作表的索引或名称,表示要写入的Excel文件的第2个工作表。
  • ['G4:G' num2str(n\*3+3)]: 这是要写入数据的Excel工作表的范围。在这个例子中,数据将被写入第2个工作表的G列,从第4行到第(n*3+3)行。num2str(n*3+3)将计算的行数转换为字符串。

综合起来,这个语句的作用是将Matlab中的矩阵 SFoutputc 的第一列数据写入Excel文件的第2个工作表的G列,从第4行到第(n*3+3)行的范围内。

画图

在 MATLAB 中修改图例文字描述可以使用 legend 函数。以下是一个简单的例子,演示如何修改图例文字描述:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
% 创建一些示例数据
x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);

% 绘制两条曲线
plot(x, y1, 'b', 'LineWidth', 2);
hold on;
plot(x, y2, 'r', 'LineWidth', 2);

% 添加图例,并获取图例句柄
legend_handle = legend('sin(x)', 'cos(x)');

% 修改图例文字描述
new_legend_strings = {'Sine Wave', 'Cosine Wave'};
set(legend_handle, 'String', new_legend_strings);

% 添加轴标签和标题
xlabel('x');
ylabel('y');
title('Sine and Cosine Waves');

% 显示网格
grid on;

% 保持图形打开
hold off;

在这个例子中,首先创建了一些示例数据并绘制了两条曲线。然后,使用 legend 函数创建图例,并获取图例的句柄。最后,使用 set 函数修改图例文字描述为新的字符串。

请注意,你需要根据你的具体情况修改曲线的样式、颜色和其他属性,以及图例的位置和其他参数。上述代码只是一个基本示例。