从 Map 中找到 value 最大元素的 key
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| myMap = containers.Map({'a', 'b', 'c', 'd'}, [10, 20, 15, 25]);
values = myMap.values();
valuesArray = cell2mat(values);
[~, maxIndex] = max(valuesArray);
keys = myMap.keys(); maxKey = keys{maxIndex};
disp(['最大值的键是: ', maxKey]); disp(['最大值是: ', num2str(valuesArray(maxIndex))]);
|
将字符串大写
1 2 3 4 5 6 7 8
| lowercaseStr = 'hello world';
uppercaseStr = upper(lowercaseStr);
disp(uppercaseStr);
|
花括号和方括号
花括号 {}
表示元胞数组 (Cell Array), 可以存储不同类型的数据, 例如字符串, 数字, 结构体等, 如:
而方括号 []
用于创建常规数组, 例如数值数组, 字符数组或逻辑数组. 所有元素必须是相同类型. 如:
定义键值对
用 containers.Map
来创建, 需要分别指定键和值的类型.
创建键值对
1 2 3 4 5 6 7 8 9 10
| myMap = containers.Map('KeyType', 'char', 'ValueType', 'double');
myMap('a') = 1; myMap('b') = 2; myMap('c') = 3;
disp(myMap);
|
访问值
1 2
| valueA = myMap('a'); disp(['Value for key "a": ', num2str(valueA)]);
|
检查键是否存在
1 2 3 4 5
| if isKey(myMap, 'b') disp('Key "b" exists.'); else disp('Key "b" does not exist.'); end
|
删除键值对
1 2
| remove(myMap, 'b'); disp(myMap);
|
创建多个键值对
1 2 3 4 5
| keys = {'x', 'y', 'z'}; values = [10, 20, 30];
myMap = containers.Map(keys, values); disp(myMap);
|
函数定义
示例:
1 2 3 4
| function result = addNumbers(a, b) result = a + b; end
|
注意, 在 MATLAB 中, 如果你在一个文件中定义了一个函数, 那么该文件只能包含该函数的定义, 或者在该函数后定义其他函数. 而主脚本代码 (如调用函数和显示结果的代码) 应该放在另一个文件中, 或者在命令行中执行.
双引号和单引号的区别
- 用双引号定义字符串时, 默认创建的是字符串数组
- 用单引号定义字符串时, 才是字符数组
示例:
1 2 3 4 5 6 7 8 9
| charArray = 'hello'; disp(charArray); disp(class(charArray));
stringArray = "hello"; disp(stringArray); disp(class(stringArray));
|
另一个验证区别的方式:
1 2 3 4 5 6
| str = "Hello, World!";
for i = 1:length(str) char = str(i); disp(['字符 ', num2str(i), ': ', char]); end
|
只输出一次, 因为字符串数组中只有一个元素.
而:
1 2 3 4 5 6 7 8
| charArray = 'Hello, World!';
for i = 1:length(charArray) char = charArray(i); disp(['字符 ', num2str(i), ': ', char]); end
|
输出每个字符.
退出 matlab, 打开 workspace
在命令行输入:
可以关闭 matlab.
输入:
可以打开 workspace.
同时为多个变量赋值
需要配合 deal()
函数使用, 如:
1
| [a, b, c] = deal(1, 2, 3);
|
会分别将 1, 2, 3 赋值给变量 a
, b
, c
.
访问数组的元素
如 f
为 5001x1
的 double
类型的数组, 取其第一个元素:
遍历数组:
1 2 3 4
| A = [1, 2, 3, 4, 5]; for i = 1:length(A) disp(A(i)); end
|
获取变量类型, 大小和长度
用 class()
函数获取类型, 用 size()
函数获取大小, 用 length()
函数获取长度:
1 2 3 4
| A = [1 2 3 4 5 6 7]; sz = size(A); cls = class(A); len = length(A);
|
sz
的值为 1x7
.
cls
的值为 double
.
len
的值为 7
.
创建, 访问和操作单元数组 (cell array)
在 MATLAB 中, 单元数组是一种特殊的数组, 可以容纳不同类型的数据, 每个元素可以是任意类型的数据, 包括数组, 结构体, 函数句柄等.
示例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| myCellArray = {1, 'hello', [2 3 4], magic(3)}; myCellArray2 = {1, 2, 3; 'a', 'b', 'c'};
element1 = myCellArray{1}; element2 = myCellArray{2}; element3 = myCellArray{1,2};
myCellArray{5} = rand(2, 2);
for i = 1:length(myCellArray) disp(myCellArray{i}); end
|
运行指定脚本
在命令窗口输入文件名并回车即可.
载入 .mat
文件
.mat
文件是 MATLAB 中用来保存变量和数据的文件格式的扩展名.
可以用 load
函数加载:
清除 workspace
用 clear
指令清除 workspace 中的所有变量.
用 clear x
清除指定变量.
将图像保存为 PNG
参考
1
| saveas(gcf, 'figure.png', 'png')
|
指数拟合
用 cftool
命令.