小编use*_*098的帖子

在八度音程中使用 varargin

我试图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放入标签中,因为两者应该是相似的。)

matlab octave

5
推荐指数
1
解决办法
2114
查看次数

如何在sympy中创建符号变量的向量

如何在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,..作为矩阵元素放有问题。有什么建议么?

python sympy

4
推荐指数
1
解决办法
3439
查看次数

标签 统计

matlab ×1

octave ×1

python ×1

sympy ×1