我试图varargin在八度音程中使用,但似乎遇到了一些问题。这是我的代码:
into2.m
function [result] = into2(x)
result = x*2;
endfunction
Run Code Online (Sandbox Code Playgroud)
into3.m
function [result] = into3(x)
result = x*3;
endfunction
Run Code Online (Sandbox Code Playgroud)
calc.m
function [result1] = calc(varargin, x)
fn1 = varargin{1};
fn2 = varargin{2};
result1 = fn1(x) + fn2(x);
endfunction
Run Code Online (Sandbox Code Playgroud)
test1.m(主功能)
function [] = test1()
result= calc(@into2,@into3,2);
disp(result);
endfunction
Run Code Online (Sandbox Code Playgroud)
test1()是主函数调用calc()并传递两个函数句柄和一个标量。我期望varargin应该有@into2,@into3并且x应该有2。然而,varargin有@into2且 x 有@into3。我尝试更改顺序,但传递的两个函数不会进入一个参数;每个参数只有一个功能。我相信varargin应该有一个细胞,但似乎不起作用。我使用的是 Octave 4.2。(将MATLAB放入标签中,因为两者应该是相似的。)
如何在sympy中创建符号变量的向量?我想做类似的事情
x, x1, x2, x3 = symbols ('x x1 x2 x3')
A = [x+x1,x+x2,x+x3]
B = A * Transpose(A)
print (B)
Run Code Online (Sandbox Code Playgroud)
A是符号变量数组。我检查了sympy 文档,但不知道。
(Python 2.7.6,sympy 0.7.4.1)
更新:
我想做类似的事情
x, x1, x2, x3 = symbols ('x x1 x2 x3')
v1e = x+x1
v2e = x+x2
v3e = x+x3
v1 = v1e.subs(x1,1)
v2 = v2e.subs(x2,2)
v3 = v3e.subs(x3,3)
A = Matrix ([v1,v2,v3])
B = A * Transpose(A)
print (B)
Run Code Online (Sandbox Code Playgroud)
但是好像v1,..作为矩阵元素放有问题。有什么建议么?