how to generate a matrix from another matrix
显示 更早的评论
Hi: I am having a matrix called "alpha" with size (1x50) and another matrix called "beta" which is related to alpha through the following relation: beta=0.001/alpha I wanted to get beta as another "1x50" matrix so the number "0.001" contributes to all the values in the matrix "alpha". can any one help me out with this? Naema
采纳的回答
更多回答(2 个)
AJ von Alt
2014-6-20
You can use rdivide to do this. "rdivide" will expand the scalar "0.001" to match the size of alpha and perform elementwise division.
alpha = 1:50;
beta = 0.001./alpha;
Andrew
2014-6-20
Hello Naema. There is a really simple solution to this. All you have to do is use element operations by adding a dot.
For instance:
A=randn(50); %generating a random 50x50 matrix
B=0.001./A; %note the dot before the slash.
The reason you need the dot is because when you use something/(a matrix) in matlab, it assumes that you are trying to solve a linear system. By adding in the dot you tell matlab that instead you want to perform the operation of 0.001/A for each element of A. This notation works for many operations as well.
For instance say you want to multiply all of the elements two matrices together. Then we could do:
A=randn(50);
B=randn(50);
C=A.*B;
Here the result C would be the element multiplication of matrices A and B. That is c_ij=a_ij*b_ij. Note that this is much different than usual matrix multiplication.
There are other operators this applies to as well, such as the exponential operator and the likes. It is very useful!
类别
在 帮助中心 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!