如何在MATLAB中通过一次调用自动填充3×1矩阵的运算结果
用MATLAB实现多组输入自动计算并填充3×1矩阵
嘿,刚好我熟悉MATLAB的向量化运算,完美解决你这个一次计算多组输入的需求!不用再手动挨个计算赋值,我们可以利用MATLAB擅长的元素级向量化运算,一次搞定所有计算。
方法一:直接向量化计算(最简便)
把你的多组输入整理成列向量,然后直接用元素级运算符计算表达式,自动得到3×1的结果矩阵:
% 把三组输入分别整理成3×1的列向量 x = [10; 3; 10]; y = [5; 5; 6]; z = [3; 8; 1]; % 元素级运算计算表达式,直接生成3×1结果矩阵 result_matrix = x .* (y + z) .^ 2;
关键说明:
- MATLAB中,
*和^是矩阵运算,而我们需要每个输入组单独计算,所以要用元素级运算符:.*(元素级乘法)和.^(元素级平方) - 加法
+本身就是元素级的,所以不需要额外加圆点 - 运行后
result_matrix就是你要的3×1矩阵,顺序和你输入的三组数据完全对应
方法二:封装成函数(方便复用)
如果之后还要重复计算类似的多组输入,可以把计算逻辑封装成一个函数:
function result_matrix = calculate_expression(x, y, z) % 输入参数:x、y、z都是3×1的列向量 % 输出:3×1的结果矩阵 result_matrix = x .* (y + z) .^ 2; end
调用函数的方式:
% 定义输入向量 x_input = [10; 3; 10]; y_input = [5; 5; 6]; z_input = [3; 8; 1]; % 一次调用得到结果 output_matrix = calculate_expression(x_input, y_input, z_input);
这样不管之后有多少组输入,只要把数据整理成列向量,调用函数就能自动得到对应结果矩阵啦!
内容的提问来源于stack exchange,提问作者John Wayne
相关产品推荐
相关产品推荐

