Can I construct a matrix multiplying a scalar and a vector?

4 Ansichten (letzte 30 Tage)
I have a scalar i=3 and a vector j=[4; 5]. I want to generate the matrix k=[3 4; 3 5].
Is there a way to multiply i and j to generate the matrix k?

Akzeptierte Antwort

Jan
Jan am 11 Sep. 2019
Bearbeitet: Jan am 11 Sep. 2019
No, tis is not a standard multiplication. But you can create k based on i and j:
i = 3;
j = [4; 5];
% Solution 1:
k(:, 2) = j;
k(:, 1) = i;
% Solution 2:
k = i .* [1, 0; 1, 0] + j .* [0, 1; 0, 1]; % Auto-expanding, need Matlab >= R2016b
What is the general case? Why do you want a "multiplication"? Which is the problem you want to solve actually?
  1 Kommentar
Jaime De La Mota Sanchis
Jaime De La Mota Sanchis am 11 Sep. 2019
This is my current code. I am trying to construct a Smolyak collocation matrix. This general case is the construction of two rows of said matrix. If you are curious, this is the code I am using.
close all
clear
clc
contador=1;
number_of_rv=2;
mat_index = ones(number_of_rv+1, number_of_rv);
mat_ampl = zeros(2*number_of_rv+1, number_of_rv);
longitud_mat_ampl=length(mat_ampl);
for i=2: number_of_rv+1
mat_index(i,contador)=2;
contador=contador+1;
end
matriz_rv_1_ejemplo= -1*[7 8 9; 0 10 11; 0 0 12];
matriz_rv_2_ejemplo= -1*[1 2 3; 0 4 5; 0 0 6];
matriz_rvs=cat(3,matriz_rv_1_ejemplo, matriz_rv_2_ejemplo);
for i=1: number_of_rv+1
vector_indices=mat_index(i,:);
nodes_1=matriz_rv_1_ejemplo(1:vector_indices(1), vector_indices(1))
nodes_2=matriz_rv_2_ejemplo(1:vector_indices(2), vector_indices(2))
end

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by