substitute each element of a vector into a matrix without using loop
이전 댓글 표시
Hi I want to substitute each element of vector1 into 'x' in matrix1 and store each matrix in an array without using a loop. Please tell me how.
vector1=[1:1:10];
matrix1=[4*x 5*x ; 4*x 2*x];
Thanks in advance.
채택된 답변
추가 답변 (3개)
Sean de Wolski
2013년 11월 19일
So:
vector1=[1:1:10];
x = vector1;
matrix1=[4*x 5*x ; 4*x 2*x];
Or is x symbolic?
clear x;
syms x
matrix1=[4*x 5*x ; 4*x 2*x];
matrix1 = subs(matrix1,x,vector1)
댓글 수: 5
AllKindsofMath AllKinds
2013년 11월 19일
Sean de Wolski
2013년 11월 19일
편집: Sean de Wolski
2013년 11월 19일
i.e. the second half of what I have...
AllKindsofMath AllKinds
2013년 11월 19일
Sean de Wolski
2013년 11월 19일
subs(matrix1,x,vector1(4))
AllKindsofMath AllKinds
2013년 11월 19일
Jan
2013년 11월 19일
Maybe something like the following?
matrix = [4, 5; 4, 2];
[p, q] = size( matrix );
vector = 1:1:10;
matrix = repmat( matrix(:), 1, numel( vector ) );
matrix = matrix .* repmat( vector, p*q, 1 );
matrix = reshape( matrix, p, q, numel( vector ) );
This gives you a 3d matrix, where each layer contains the specified matrix, mulitplied by one entry in vector
댓글 수: 1
AllKindsofMath AllKinds
2013년 11월 19일
Alfonso Nieto-Castanon
2013년 11월 20일
perhaps something like:
f = @(x)[4*x 5 ; 4 2*x]; % Matrix in functional form
vector = 1:10; % Your vector of values for 'x'
matrix = arrayfun(f,vector,'uni',0); % A cell array of matrices
values = cellfun(@det,matrix); % Determinant of each of those matrices
카테고리
도움말 센터 및 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!