Assign a value to a matrix element defined as a variable

4 次查看(过去 30 天)
Hi all,
Is it possible to assign values (variables) to elements in a matrix that is defined as a function handle?
For example:
prop1 = zeros(2);
prop1(:,1) = 1;
prop1(:,2) = 2;
prop1
prop1 = 2×2
1 2 1 2
prop2 = @(x) [0 0;
0 0]
prop2 = function_handle with value:
@(x)[0,0;0,0]
prop2(:,2) = @(x) x(2)
Nonscalar arrays of function handles are not allowed; use cell arrays instead.
I would like to assign variables to prop2 as I did to prop1.
  2 个评论
Geovane Gomes
Geovane Gomes 2023-6-17
编辑:Geovane Gomes 2023-6-17
Is it possible to write the following function handle with less effort? Maybe with a couple of code lines.
prop = @(x) [x(1) x(3) 0 0;
x(1) x(3) 0 0;
x(1) x(3) 0 0;
x(1) x(3) 0 0;
x(1) x(3) 0 0;
x(1) x(3) 0 0;
x(1) x(3) 0 0;
x(1) x(3) 0 0;
x(1) x(3) 0 0;
x(1) x(3) 0 0;
x(1) x(3) 0 0;
x(2) x(4) 0 0;
x(2) x(4) 0 0;
x(2) x(4) 0 0;
x(2) x(4) 0 0;
x(2) x(4) 0 0;
x(2) x(4) 0 0;
x(2) x(4) 0 0;
x(2) x(4) 0 0;
x(2) x(4) 0 0;
x(2) x(4) 0 0;
x(2) x(4) 0 0;
x(2) x(4) 0 0];

请先登录,再进行评论。

采纳的回答

Torsten
Torsten 2023-6-17
移动:Torsten 2023-6-17
prop = @(x)[[x(1)*ones(11,1);x(2)*ones(12,1)],[x(3)*ones(11,1);x(4)*ones(12,1)],zeros(23,1),zeros(23,1)];
prop([1 2 3 4])
ans = 23×4
1 3 0 0 1 3 0 0 1 3 0 0 1 3 0 0 1 3 0 0 1 3 0 0 1 3 0 0 1 3 0 0 1 3 0 0 1 3 0 0

更多回答(1 个)

Voss
Voss 2023-6-17
prop = @(x)[x([repmat([1 3],11,1); repmat([2 4],12,1)]) zeros(23,2)];

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

产品


版本

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by