现在时间是:
当前位置:首 页 >> Matlab>> 教学区>> 文章列表

实训作业1 改良版

作者:陈亭亭 郭姣姣 孙英楠 李莹莹   发布时间:2019-05-07 17:41:30   浏览次数:112

 1.编写四元数运算程序,实现M*N矩阵乘以N维向量。

%%%%%%建立相应的函数

function [A0,A1,A2,A3]=A2A0123(A)

% input A=[A0 A2 A1 A3]

% output: A0 A1 A2 A3

 

n=size(A,2)/4;

A0=A(:,1:n);

A2=A(:,(n+1):(2*n));

A1=A(:,(2*n+1):(3*n));

A3=A(:,(3*n+1):(4*n));

%%%%%%%%%

function A=timesQ(B,C)

%  A=B*C

%B=[B0 B2 B1 B3]  denotes a quaternion matrix B=B0+B1*i+B2*j+B3*k

%C=[C0 C2 C1 C3]  denotes a quaternion matrix C=C0+C1*i+C2*j+C3*k

%A=[A0 A2 A1 A3]  denotes a quaternion matrix A=A0+A1*i+A2*j+A3*k

 

[B0,B1,B2,B3]=A2A0123(B);

[C0,C1,C2,C3]=A2A0123(C);

A0=B0*C0-B2*C2-B1*C1-B3*C3;

A2=B0*C2+B2*C0-B1*C3+B3*C1;

A1=B0*C1+B2*C3+B1*C0-B3*C2;

A3=B0*C3-B2*C1+B1*C2+B3*C0;

%

 

A=[A0 A2 A1 A3];

运行结果

A0=rand(10,10);

A1=rand(10,10);

A2=rand(10,10);

A3=rand(10,10);

 

A=[A0 A2 A1 A3];

B0=rand(10,1);

B1=rand(10,1);

B2=rand(10,1);

B3=rand(10,1);

 

B=[B0 B2 B1 B3];

 C=timesQ(A,B)

 

C =

 

   -4.0291    7.7357    4.6935    6.7745

   -5.6256    5.5917    4.2529    5.8635

   -6.7814    4.4113    1.3289    6.6445

   -5.9957    4.4600    3.3653    7.3934

   -4.7986    4.7220    3.1750    8.4897

   -4.4606    5.5251    2.7917    5.3583

   -3.6405    5.6307    2.8706    6.4231

   -2.6404    5.9248    3.9797    7.6692

   -4.4164    4.9196    1.5031    5.5014

 

   -3.9590    5.8725    1.8531    6.7835

2.用彩色照片生成3024*4032的四元数矩阵A,生成4032维四元数向量x=ones(4032,1)+[1:4032]'*i-ones(4032,1)*j+[4032:-1:1]'*k,计算3024维四元数向量b=Ax,并记录cpu运算时间。

问题分析:

首先要先读入一张图片,其次把它转化成所需的大小(3024*4032),再把它转成四元数矩阵B,随机生成一个向量X,它们做积就可以计算出3024维四元数向量b

代码:

t1=clock;

A=imread('C:1.jpg');

A1=imresize(A,[3024,4032]);

imshow(A1)

B=im2double(A1); %将图像数组转换成双精度

B1=B(:,:,1);

B2=B(:,:,2);

B3=B(:,:,3);

B0=zeros(3024,4032);

B=[B0,B1,B2,B3];

X0=rand(4032,1);

X1=rand(4032,1);

X2=rand(4032,1);

X3=rand(4032,1);

X=[X0,X1,X2,X3];

b=timesQ(B,C)

t2=clock;

T=etime(t2,t1)

运行结果:

t2=clock;

>> T=etime(t2,t1)

 

T =

 

  429.3780

 

 

 







上一篇:没有了    下一篇:没有了

Copyright ©2020    计算数学达人 All Right Reserved.

技术支持:自助建站 | 领地网站建设 |短信接口 |燕窝 版权所有 © 2005-2020 lingw.net.粤ICP备16125321号 -5