小编Da *_*ang的帖子

为什么需要Matlab功能"feval"?

函数句柄可用于调用函数,例如

f = @sin;
val = f(1.0);
Run Code Online (Sandbox Code Playgroud)

那为什么需要"feval"呢?

val = feval(f, 1.0);
Run Code Online (Sandbox Code Playgroud)

什么时候有用?

matlab function

20
推荐指数
2
解决办法
2万
查看次数

Matlab如何转置稀疏矩阵?

我一直想知道这个问题很长一段时间但是找不到参考:Matlab如何快速转置稀疏矩阵,因为它存储在CSC(压缩稀疏列)格式中?

其文档验证稀疏矩阵转置的效率:

要执行此操作(逐行访问),您可以转置矩阵,对列执行操作,然后重新转换结果...转置矩阵所需的时间可以忽略不计.

后续行动(根据@Mikhail的建议修改):

我同意@Roger和@Milhail的说法,设置一个标志足以支持许多操作,例如BLAS或稀疏BLAS操作的接口.但在我看来,Matlab做了"实际"换位.例如,我有一个稀疏矩阵X,大小为m*n = 7984*12411,我想缩放每一列和每一行:

% scaling each column
t = 0;
for i = 1 : 1000
    A = X; t0 = tic;
    A = bsxfun(@times, A, rand(1,n));
    t = t + toc(t0);
end
Run Code Online (Sandbox Code Playgroud)

t = 0.023636秒

% scaling each row
t = 0;
for i = 1 : 1000
    A = X; t0 = tic;
    A = bsxfun(@times, A, rand(m,1));
    t = t + toc(t0);
end
Run Code Online (Sandbox Code Playgroud)

t = 138.3586秒

% scaling each row by …
Run Code Online (Sandbox Code Playgroud)

matlab bsxfun

11
推荐指数
2
解决办法
2525
查看次数

使用Python多处理在子进程内创建子进程失败

尝试在Python中创建嵌套子进程时,我观察到了这种行为.这是父程序parent_process.py:

import multiprocessing
import child_process

pool = multiprocessing.Pool(processes=4)
for i in range(4):
        pool.apply_async(child_process.run, ())
pool.close()
pool.join()
Run Code Online (Sandbox Code Playgroud)

父程序在以下子程序child_process.py中调用"run"函数:

import multiprocessing

def run():
        pool = multiprocessing.Pool(processes=4)
        print 'TEST!'
        pool.close()
        pool.join()
Run Code Online (Sandbox Code Playgroud)

当我运行父程序时,没有打印出任何内容,程序很快退出.但是,如果print 'TEST!'在上面移动了一行(在创建嵌套子进程之前),'TEST!'则打印4次.

由于子进程中的错误不会打印到屏幕,这似乎表明当子进程创建自己的嵌套子进程时程序崩溃.

谁能解释一下场景背后会发生什么?谢谢!

python multiprocessing

9
推荐指数
2
解决办法
3806
查看次数

Matlab类构造函数调用初始化方法

在类构造函数中,如果我调用另一个方法来初始化某个属性,为什么该属性没有改变?

示例代码:

classdef Test
    properties
        prop    
    end 

    methods
        function obj = Test()
            obj.init(); 
        end     
        function init(obj)
            obj.prop = 1;
        end     
    end 
end
Run Code Online (Sandbox Code Playgroud)

然后执行A = Test();我得到A.prop = [].

matlab constructor

3
推荐指数
1
解决办法
7212
查看次数

标签 统计

matlab ×3

bsxfun ×1

constructor ×1

function ×1

multiprocessing ×1

python ×1