vb.net实现矩阵相乘的简单介绍

VB设计一个支持矩阵加减乘运算的程序

Const M = 5

创新互联主要从事成都网站制作、做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务井陉,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575

Const N = 5

Dim aa(M, N), bb(M, N), cc(M, N)

Sub printit(a()) '打印矩阵

For i = 1 To M

For j = 1 To N

Print Tab(j * 10); a(i, j);

Next j

Print

Next i

End Sub

Sub jzjia(a(), b(), c()) '矩阵相加 c=a+b

For i = 1 To M

For j = 1 To N

c(i, j) = a(i, j) + b(i, j)

Next j, i

End Sub

Sub jzjian(a(), b(), c()) '矩阵相减 c=a-b

For i = 1 To M

For j = 1 To N

c(i, j) = a(i, j) - b(i, j)

Next j, i

End Sub

Sub jzcheng(a(), b(), c()) '矩阵相乘 c=a*b

For i = 1 To M

For j = 1 To N

c(i, j) = a(i, j) * b(i, j)

Next j, i

End Sub

Private Sub Command1_Click()

Cls

Print "a----------------"

printit aa

Print "b----------------"

printit bb

jzjia aa, bb, cc '相加

Print "c=a+b------------"

printit cc '输出矩阵

jzjian aa, bb, cc '相减

Print "c=a-b------------"

printit cc

jzcheng aa, bb, cc '相乘

Print "c=a*b------------"

printit cc

End Sub

Private Sub Form_Load()

'为数组aa和bb赋初值,可根据自己需要进行赋值

For i = 1 To M

For j = 1 To N

aa(i, j) = i * j

bb(i, j) = i + j

Next j

Next i

End Sub

求助!用Vb.net编写两个矩阵相乘!

Public Shared Sub Main()

Dim a As Integer, b As Integer, c As Integer, d As Integer

Console.WriteLine("该程序将求出两个矩阵的积:")

Console.WriteLine("请指定矩阵A的行数:")

a = Integer.Parse(Console.ReadLine())

Console.WriteLine("请指定矩阵A的列数:")

b = Integer.Parse(Console.ReadLine())

Dim MatrixA As Integer(,) = New Integer(a - 1, b - 1) {}

For i As Integer = 0 To a - 1

For j As Integer = 0 To b - 1

Console.WriteLine("请输入矩阵A第{0}行第{1}列的值:", i + 1, j + 1)

MatrixA(i, j) = Integer.Parse(Console.ReadLine())

Next

Next

Console.WriteLine("矩阵A输入完毕.")

Console.WriteLine("请指定矩阵B的行数:")

c = Integer.Parse(Console.ReadLine())

Console.WriteLine("请指定矩阵B的列数:")

d = Integer.Parse(Console.ReadLine())

Dim MatrixB As Integer(,) = New Integer(c - 1, d - 1) {}

For i As Integer = 0 To c - 1

For j As Integer = 0 To d - 1

Console.WriteLine("请输入矩阵A第{0}行第{1}列的值:", i + 1, j + 1)

MatrixB(i, j) = Integer.Parse(Console.ReadLine())

Next

Next

Console.WriteLine("矩阵B输入完毕.")

Console.WriteLine("矩阵A为:")

outputMatrix(MatrixA, a, b)

Console.WriteLine("矩阵B为:")

outputMatrix(MatrixB, c, d)

If b c Then

Console.WriteLine("矩阵A的列数与矩阵B的行数不相等,无法进行乘积运算!")

Return

Else

Console.WriteLine("矩阵A与矩阵B的乘积为:")

End If

Dim MatrixC As Integer(,) = New Integer(a - 1, d - 1) {}

For i As Integer = 0 To a - 1

For j As Integer = 0 To d - 1

MatrixC(i, j) = 0

For k As Integer = 0 To b - 1

MatrixC(i, j) += MatrixA(i, k) * MatrixB(k, j)

Next

Next

Next

outputMatrix(MatrixC, a, d)

End Sub

Private Shared Sub outputMatrix(MatrixX As Integer(,), rowCount As Integer, columnCount As Integer)

For i As Integer = 0 To rowCount - 1

For j As Integer = 0 To columnCount - 1

Console.Write(MatrixX(i, j) vbTab)

Next

Console.WriteLine()

Next

End Sub

End Class

矩阵相乘 VB代码

'建立4个label1(),index 0--3。6个label2(),index 0--5。6个text1(),index 0--5

'建立1个label3,两个command1和2

'Form1.MaxButton = False

Dim I As Byte, J As Byte, A As Byte, B As Byte

Dim M As Byte, N As Byte, MN As Byte

Dim JZ1() As Single, JZ2() As Single, JZ3() As Single

Dim SS As String

Private Sub Command1_Click()

If Command1.Caption = "确定" Then

Command1.Caption = "完成"

ReDim JZ1(1 To M, 1 To MN) As Single

ReDim JZ2(1 To MN, 1 To N) As Single

ReDim JZ3(1 To M, 1 To N) As Single

For I = 0 To 5

Text1(I).Locked = True

Text1(I).BackColor = HF0F0F0

Text1(I).BorderStyle = 0

Next I

Label3.Caption = "请输入相乘的两个矩阵,输入完成后按完成键"

For I = 1 To M

For J = 1 To MN

JZ1(I, J) = Val(InputBox("第一个矩阵____第" + Str(I) + "行 第" + Str(J) + "列元素:", "输入矩阵", 3))

CurrentX = 100 + (J - 1) * 350

CurrentY = 1000 + (I - 1) * 200

Print JZ1(I, J)

Next

Next

For I = 1 To MN

For J = 1 To N

JZ2(I, J) = Val(InputBox("第二个矩阵____第" + Str(I) + "行 第" + Str(J) + "列元素:", "输入矩阵", 3))

CurrentX = 3000 + (J - 1) * 350

CurrentY = 1000 + (I - 1) * 200

Print JZ2(I, J)

Next

Next

'Select Case M

ElseIf Command1.Caption = "完成" Then

Command1.Caption = "重新开始"

For I = 1 To M

For J = 1 To N

JZ3(I, J) = 0

For A = 1 To MN

JZ3(I, J) = JZ3(I, J) + JZ1(I, A) * JZ2(A, J)

Next

CurrentX = 6000 + (J - 1) * 350

CurrentY = 1000 + (I - 1) * 200

Print JZ3(I, J)

Next

Next

Else

Form_Load

End If

End Sub

Private Sub Command2_Click()

End

End Sub

Private Sub Form_Load()

Cls

Form1.Width = 9000

Form1.Height = 7000

For I = 0 To 2

Label1(I).Width = 1000

Label1(I).Height = 200

Label1(I).Top = 0

Label1(I).Left = 700 + I * 3000

Label1(I).Caption = "第" + Str(I + 1) + "个矩阵"

Next

For I = 0 To 5

Text1(I).Width = 400

Text1(I).Height = 200

Text1(I).Top = 300

Label2(I).Width = 200

Label2(I).Height = Text1(I).Height

Label2(I).Top = Text1(I).Top + 50

Text1(I).Text = 2

Text1(I).Alignment = 1

If I Mod 2 Then

Text1(I).Left = I * 1500 - 300

Label2(I).Caption = "列"

Else

Text1(I).Left = 300 + I * 1500

Label2(I).Caption = "行"

End If

Label2(I).Left = Text1(I).Left + 450

Next

M = 2

N = 2

MN = 2

Text1(2).Locked = True

Text1(4).Locked = True

Text1(5).Locked = True

Text1(0).Locked = False

Text1(1).Locked = False

Text1(3).Locked = False

For I = 0 To 5

Text1(I).BackColor = HFFFFFF

Text1(I).BorderStyle = 1

Next I

Command1.Caption = "确定"

Command2.Caption = "退出"

Label3.Caption = "请输入矩阵的行和列,完成后按确定键"

End Sub

Private Sub Text1_Change(Index As Integer)

Text1(2).Text = Text1(1).Text

Text1(4).Text = Text1(0).Text

Text1(5).Text = Text1(3).Text

M = Val(Text1(0).Text)

MN = Val(Text1(1).Text)

N = Val(Text1(3).Text)

End Sub

已经运行过。

VB.NET写了一个矩阵乘法的程序 代码如下

淳朴,古拙,淡泊,深远。闲居山林,逍遥河上,也许人只有摆脱了物欲的禁锢,才能让灵魂得到飞升。不识字烟波钓叟,傲杀人见万户侯;闲居山野的隐士,羞煞世上名利客。

斜风细雨,江南春色,落英缤纷。春水媚,绿波盈,青山横,白鹭飞。披蓑戴笠,心逐白云,意随鱼戏,行到水穷,坐看云起,卧听风韵松涛。不须归,不须归,只任心灵,放逐在深爱的自然里,忘世忘机。

《芥子园画谱》云:“与山水有顾盼,人似看山,山亦似俯而看人”。司空图《诗品冲淡》说:“遇之非深,即之逾稀。”空灵天真,非性情中人而不能为。梅妻鹤子友麋鹿,是怎样一种超逸?


当前题目:vb.net实现矩阵相乘的简单介绍
网站网址:http://scjbc.cn/article/hjedoc.html

其他资讯