⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 MATLAB C# Book. This book is a great tutorial for C# programmers who use MATLAB to develop applicati
💻 CS
📖 第 1 页 / 共 2 页
字号:
			Label lbMatrixB = new System.Windows.Forms.Label();
			lbMatrixB.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));

			// row B = col A
			int lbMatrixBlength = (m_numColMatrixBTextBox)*(m_tbLength+2) - 2; ;
			lbMatrixB.Location = new System.Drawing.Point(m_startPointMatrixB.X, m_startPoint.Y - 40);
			lbMatrixB.Size = new System.Drawing.Size(lbMatrixBlength, 28);
			lbMatrixB.Name = "lbMatrixB";
			lbMatrixB.Text = "Matrix B";

			lbMatrixB.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
			this.Controls.Add(lbMatrixB) ;

		}

		public void SetLabelMatrixC() 
		{

			Label lbMatrixC = new System.Windows.Forms.Label();
			lbMatrixC.Font  = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));

			// row B = col A
			int lbMatrixClength = (m_numColMatriCTextBox)*(m_tbLength+2) - 2; ;
			lbMatrixC.Location = new System.Drawing.Point(m_startPointMatrixC.X, m_startPointMatrixC.Y - 40);
			lbMatrixC.Size = new System.Drawing.Size(lbMatrixClength, 28);
			lbMatrixC.Name = "lbMatrixC";
			lbMatrixC.Text = "Matrix C";

			lbMatrixC.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
			this.Controls.Add(lbMatrixC) ;

		}


		public void SetTextBoxMatrixB() 
		{

			for(int i=0; i<m_numRowMatrixBTextBox; i++) 
			{
				for(int j=0; j<m_numColMatrixBTextBox; j++)  
				{
				 
					arrTextBoxMatrixB[i,j] = new System.Windows.Forms.TextBox();
					arrTextBoxMatrixB[i,j].Location = new System.Drawing.Point(m_startPointMatrixB.X + (m_tbLength+2)*j, m_startPointMatrixB.Y + (m_tbHeight+2)*i );
					arrTextBoxMatrixB[i,j].Name = "textBox2";
					arrTextBoxMatrixB[i,j].Size = new System.Drawing.Size(m_tbLength, m_tbHeight);
					arrTextBoxMatrixB[i,j].TabIndex = i;
					arrTextBoxMatrixB[i,j].Text = "0.0";
					this.Controls.Add(arrTextBoxMatrixB[i,j]) ;
				}
			}
		}

		public void SetTextBoxMatrixC() 
		{

			//TextBox[,] arrTextBoxMatrixC = new TextBox[m_numRowMatriCTextBox, m_numColMatriCTextBox] ;

			for(int i=0; i<m_numRowMatriCTextBox; i++) 
			{
				for(int j=0; j<m_numColMatriCTextBox; j++)  
				{
				 
					arrTextBoxMatrixC[i,j] = new System.Windows.Forms.TextBox();
					arrTextBoxMatrixC[i,j].Location = new System.Drawing.Point(m_startPointMatrixC.X + (m_tbLength+2)*j, m_startPointMatrixC.Y + (m_tbHeight+2)*i );
					arrTextBoxMatrixC[i,j].Name = "textBox2";
					arrTextBoxMatrixC[i,j].Size = new System.Drawing.Size(m_tbLength, m_tbHeight);
					arrTextBoxMatrixC[i,j].TabIndex = i;
					arrTextBoxMatrixC[i,j].Text = "0.0";
					arrTextBoxMatrixC[i,j].ReadOnly = true;
					this.Controls.Add(arrTextBoxMatrixC[i,j]) ;
				}
			}
		}
		/// <summary>
		/// The main entry point for the application.
		/// </summary>
		[STAThread]
		static void Main() 
		{
			Application.Run(new Form1());
			
		}

		private void btSetNumber_Click(object sender, System.EventArgs e)
		{
			int rowA ;
			int colA ;

			int rowB ;
			int colB ;

			try
			{
				rowA = Convert.ToInt32(tbMatrixA_row.Text);
				colA = Convert.ToInt32(tbMatrixA_col.Text);

				rowB = Convert.ToInt32(tbMatrixB_row.Text);
				colB = Convert.ToInt32(tbMatrixB_col.Text);
			}

			catch
			{
				MessageBox.Show("Please enter the number") ;
				return ;
			}

			m_numRowMatricATextBox = rowA ;
			m_numColMatricATextBox = colA ;

			m_numRowMatrixBTextBox = m_numColMatricATextBox ;
			m_numColMatrixBTextBox = colB ;

			m_numRowMatriCTextBox = m_numRowMatricATextBox ;
			m_numColMatriCTextBox = m_numColMatrixBTextBox ;


			SetProperty() ;

		}

		public void SetProperty() 
		{

			this.Controls.Clear() ;


			m_tbLength = 38 ;
			m_tbHeight = 20 ;

			int adistance = 50 ;
			// = length of A + a distance
			m_startPointMatrixB.X = m_startPoint.X + (m_numColMatricATextBox)*(m_tbLength+2) - 2 + adistance ;
			m_startPointMatrixB.Y = m_startPoint.Y ;


			int lbMatrixBlength = (m_numColMatrixBTextBox)*(m_tbLength+2) - 2; 

			m_startPointMatrixC.X = m_startPoint.X ;
			int aheight_A = m_startPoint.Y + (m_numRowMatricATextBox)*(m_tbHeight+2)+ 3*adistance ;
			int aheight_B = m_startPoint.Y + (m_numRowMatrixBTextBox)*(m_tbHeight+2)+ 3*adistance ;
			
			int aheight = Math.Max(aheight_A, aheight_B) ;
			m_startPointMatrixC.Y = aheight ;

			// reset form size

			InitializeComponent();
			tbMatrixA_row.Text = m_numRowMatricATextBox.ToString() ;
			tbMatrixA_col.Text = m_numColMatricATextBox.ToString() ;

			tbMatrixB_row.Text = m_numRowMatrixBTextBox.ToString() ;
			tbMatrixB_col.Text = m_numColMatrixBTextBox.ToString() ;

			m_numRowMatriCTextBox = m_numRowMatricATextBox ;
			m_numColMatriCTextBox = m_numColMatrixBTextBox ;


			SetLabelMatrixA() ;
			SetLabelMatrixB() ;
			SetLabelMatrixC() ;

			// set calculation button
			this.btCalculation.Location = new System.Drawing.Point(m_startPoint.X, aheight - 100);

			SetTextBoxMatrixA() ;
			SetTextBoxMatrixB() ;
			SetTextBoxMatrixC() ;

			m_FormLength = m_startPointMatrixB.X + lbMatrixBlength + adistance ;
			m_FormHeight = m_startPointMatrixC.Y + m_numRowMatriCTextBox*(m_tbHeight+2) + adistance;

			m_FormLength = Math.Max(544, m_FormLength) ;
			this.ClientSize = new System.Drawing.Size(m_FormLength, m_FormHeight);

			this.Refresh() ;

		}

		private void btCalculation_Click(object sender, System.EventArgs e)
		{
			try
			{
				GetMatrixA() ;
				GetMatrixB() ;
				GetMatrixC() ;
			}
			catch 
			{
				MessageBox.Show("You haven't enter wrong data") ;
			}
		}

		public void GetMatrixA() 
		{
			int rowA, colA ;

			try
			{
				rowA = Convert.ToInt32(tbMatrixA_row.Text);
				colA = Convert.ToInt32(tbMatrixA_col.Text);
			}

			catch
			{
				MessageBox.Show("Please enter the number") ;
				return ;
			}

			
			int i, j ;

			try 
			{
				for( i=0; i<m_numRowMatricATextBox; i++) 
				{
					for( j=0; j<m_numColMatricATextBox; j++)  
					{
			
						db_MatrixA[i,j] = Convert.ToDouble(arrTextBoxMatrixA[i,j].Text) ;
					}
				}

			}

			catch 
			{
				MessageBox.Show("Please enter the number in Matrix A") ;
				return ;
			}


		}


		public void GetMatrixB() 
		{
			int rowB, colB ;
			try
			{

				rowB = Convert.ToInt32(tbMatrixB_row.Text);
				colB = Convert.ToInt32(tbMatrixB_col.Text);
			}

			catch
			{
				MessageBox.Show("Please enter the number") ;
				return ;
			}

			
			int i, j ;

			try 
			{
				for( i=0; i<m_numRowMatrixBTextBox; i++) 
				{
					for( j=0; j<m_numColMatrixBTextBox; j++)  
					{
			
						db_MatrixB[i,j] = Convert.ToDouble(arrTextBoxMatrixB[i,j].Text) ;
					}
				}


			}

			catch 
			{
				MessageBox.Show("Please enter the number in Matrix B") ;
				return ;
			}


		}


		public void GetMatrixC() 
		{
		// calculate matrix multiplication

			/* declare mxArray variables */
			IntPtr mx_A = (IntPtr)null ;
			IntPtr mx_B = (IntPtr)null ;
			IntPtr mx_C = (IntPtr)null ;

			/* convert C# matrix to mxArray */
			mx_A = MatlabCSharp.double2mxArray_matrixReal(db_MatrixA) ;
			mx_B = MatlabCSharp.double2mxArray_matrixReal(db_MatrixB) ;

			
			/* call an implemental function */
			mlfMymtimes(1, ref mx_C, mx_A, mx_B );
			
			/* convert back to C# double  */
			db_MatrixC = MatlabCSharp.mxArray2double_matrixReal(mx_C) ;


		// display to GUI
			int i, j ;			
			for( i=0; i<m_numRowMatriCTextBox; i++) 
			{
				for( j=0; j<m_numColMatriCTextBox; j++)  
				{
		
					arrTextBoxMatrixC[i,j].Text = db_MatrixC[i,j].ToString() ;
				}
			}

			MessageBox.Show("It has done") ;

		}

		private void tbMatrixA_col_TextChanged(object sender, System.EventArgs e)
		{
			tbMatrixB_row.Text = tbMatrixA_col.Text ;
		}



	}
}








⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -