问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Matlab 矩阵乘法

发布网友 发布时间:2022-04-29 09:56

我来回答

2个回答

热心网友 时间:2022-06-25 20:03

这主要是因为计算机的工作原理:
matlab自带的a*b算法是在汇编级别编辑好的运算,计算机不用做多余的工作,直接对矩阵中的数据进行相乘处理。
计算机处理过程大体是:寻两个矩阵地址-加载乘法函数-运算并将结果写入相应地址-地址位加1-运算并将结果写入相应地址-...-运算并将结果写入相应地址-读取到结束位-结束运算。
而用for-loop自己编写乘法,本身就是调用了for-loop两个函数,这是需要时间的。同时,计算机要重新分配地址记录for函数循环中产生的变量,小点的矩阵还好说,阶数较高、数据较复杂时,计算机会花更多的时间来处理这些和相乘没有直接关系的代码和运算。
计算机处理过程大体是:加载for函数-为变量分配地址-为变量赋值-查询矩阵地址-查询矩阵阶数-判断大小-查询矩阵地址-读取相应数据-加载乘法函数-运算并将结果写入相应地址-为for变量赋值-查询矩阵地址-查询矩阵阶数-判断大小-...-判断大小-结束运算。明显要比a*b多了好多工作,所以会慢很多。
lz可以做个比较直观的实验:用循环编辑一个较复杂的迭代运算,在其中加入一行显示迭代次数的代码,记录运算时间。再在这行代码后面加上分号,再看看运算时间。你会发现后者时间比前者有明显的缩短。这就是因为计算机占用了一部分时间来处理显示数据的代码。
可以参考一些微机原理、汇编语言等材料会有更深的理解。

热心网友 时间:2022-06-25 20:03

function matrix()
%%本函数注意以下几个方面
%%1.所有fprintf中\r\n也可以用\n表示 这个主要看你的文本查看器支持
%% 如果是WINDOWS的记事本看matrix.txt的话,最好用\r\n
%%2.输出语句fprintf(fid,'%.1f ',C(i,j));
%% 我觉得用fprintf(fid,'%4.1f ',C(i,j));产生的数据会更整齐一些
%% 不过你给的提示用fprintf(fid,'%.1f ',C(i,j));就可以了
disp('This program multiplies two m x m matrices A and B.')
m=input('Enter a value for m:');

%%input A
disp(' ');
A=zeros(m);
for i=1:m
info=sprintf('Enter row %d of A as an array:',i);
A(i,:)=input(info);
end

%%input B
disp(' ');
B=zeros(m);
for i=1:m
info=sprintf('Enter row %d of B as an array:',i);
B(i,:)=input(info);
end

%%C=A*B
C=zeros(m);
for i=1:m
for j=1:m
for k=1:m
C(i,j)=C(i,j)+A(i,k)*B(k,j);
end
end
end

fid=fopen('matrix.txt','w');
fprintf(fid,'A x B =\r\n');
fprintf(fid,'_ _ \r\n');
for i=1:m
if i~=m
fprintf(fid,'| ');
else
fprintf(fid,'|_ ');
end

for j=1:m
fprintf(fid,'%.1f ',C(i,j));
end

if i~=m
fprintf(fid,'|\r\n');
else
fprintf(fid,'_|\r\n');
end
end
fclose(fid);
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
四万元没开发票税务局发多少钱 不给开发票这个情节要罚多少钱? 广东乌龙茶的种类 银行什么时候拉征信 600795国电电力,为什么在2010年4,5月突然从8块跌到4块呢?涨幅-50%... 学习很差怎么逆袭 高考文科差生五十天冲刺计划!!! ...漂亮女人,那些不大漂亮的还很善良有点丑的怎么办?她们不是很可怜吗... CS1.6 AWP经典的FRAG视频 求链接 ...大家谁有AWP的视频或者DEMO,要个看看,学学,谢谢!~ 人民广场附近有什么娱乐的场所? 怎样使用MATLAB计算矩阵乘法 清远市银盏有什么休闲娱乐会所? matlab 计算两个矩阵相乘 为什么突然来遗精了 原因是什么 天坛附近有那些娱乐场所 matlab中字符乘以数组怎么做 北京牡丹园附近有什么好玩的?比如酒吧、娱乐场所等等。。。 在matlab中,怎样将两个一维数组中的元素分别相乘,然后将结果存入新数组 北京西二旗附近有什么娱乐场所? matlab数组相乘时出现错误 matlab无法进行数组的相乘运算 郑州市区附近有哪些休闲娱乐场所? matlab 一维数组相乘 在天津河西区太湖路附近有什么高级的娱乐会所么?名字是什么? 为什么js第一个for循环没有执行完,就执行了第二个for循环? matlab怎么让两个矩阵相乘?矩阵元素对应相乘? 兰州理工大学附近的娱乐场所 MATLAB中数组的乘法除法问题 【新顾村大家园B区】附近娱乐场所有几家? 中山公园附近有没有娱乐场所,适合两个人的 怎样用matlab计算一个矩阵和大量矩阵分别相乘 如何在手机上寻找附近的娱乐场所 突然遗精了 MATLAB中矩阵相乘的问题 合肥新城国际在哪?旁边可有好点的娱乐会所啊?从逍遥津怎么坐车? 谢谢啦 梦遗是怎么回事啊? 请问MATLAB中在循环中我想让两个数组中元素相乘,最终照理应是一个行向量,为什么会出现这样 附近有休闲娱乐的场所没 娱乐场所有哪些 为什么最近会频繁遗精?几天就一次了,周六就3次,以前很正常的,一个月2~3次,为什么突然频繁遗精? matlab 矩阵相乘 不知道按了什么B站网页变大了 突然遗精很多,不知什么原因 b站播放器变大了 我经常睡觉的时候遗精 25岁了,有性生活,夜里突然醒了,发现遗精了,太奇怪了,什么原因啊,上一次遗精还是十多年前的青春期? 为什么b站的视频都那么大 睡觉的时候遗精是怎么回事 为什么用360浏览器看哔哩哔哩会这样