精华内容
下载资源
问答
  • 求大神解答:Jacobi迭代法matlab程序代码,我是个新手,试了一下输入了A矩阵,但这个函数一直运行不出来是什么问题呢? function [k,d]=gjacobi(A) [n,n]=size(A); P0=eye(n);Ek=A; TZ=1;P0=eye(n);k=0; while TZ1...

    求大神解答:Jacobi迭代法matlab程序代码,我是个新手,试了一下输入了A矩阵,但这个函数一直运行不出来,是什么问题呢?

    function [k,d]=gjacobi(A)
    [n,n]=size(A);
    P0=eye(n);Ek=A;
    TZ=1;P0=eye(n);k=0;
    while TZ=1
    k=k+1;Ak=abs(Ek-diag(diag(Ek)));
    [i,j]=find(Ak==max(max(Ak)));
    i=i(1),j=j(1);
    Z1=max(max(Ak));
    Pk=P0;
    th=(pi/2)sign(Ek(i,j));
    c=cot(2
    th);
    t=tan(th);
    Pk(i,i)=cos(th);
    Pk(j,j)=Pk(i,i);
    Pk(i,j)=sin(th);
    Pk(j,i)=(-1)*sin(th);
    EO=Pk’Ek;Es=EOPk;
    Ek=Es;d=diag(Ek)./100;
    if Z1>1e-2
    TZ=1;
    else
    return
    end
    k=k;d=diag(Ek)./100;
    end
    因为输入的矩阵是aii=ajj的三对角矩阵,所以就没有列出aii不等于ajj的情况,最终k是迭代次数,d是特征值 ,求大家帮帮忙,是真的不会,拜托拜托~

    展开全文
  • 光看这程序似乎也没有什么问题,而且卡住也有多种原因,题主的情况也一定卡住——我猜题主根据一直没有输出来判断的吧。还是先讲我的处理方案——调试。看来题主用的类似于PyCharm的IDE,可以用IDE自带的...

    光看这程序似乎也没有什么问题,而且卡住也有多种原因,题主的情况也不一定是卡住——我猜题主是根据一直没有输出来判断的吧。

    还是先讲我的处理方案——调试。看来题主用的是类似于PyCharm的IDE,可以用IDE自带的调试器。我还是习惯于传统的print+logging+pysnooper:logging是自带的日志模块,可以选择输出高于某一级别(info、debug、error、critical等)的输出内容,可以调节为比较低的等级以输出更多的信息;另一个pysnooper是第三方的,输出的内容更详细,操作也更简单,就是耗费时间更长。有关的教程请题主自己查阅。找到明显的错误之后,就是百度+谷歌+stackoverflow大法即可。

    另外,如果题主的程序是真的卡住了——比如说无法执行语句之类的“假死”状态(自己定义的,不能保证规范性),这种情况下一般应用程序会显示“无响应”,但也不敢保证微软bug导致没有显示出来。我的一种判断方法是进入任务管理器,看“python.exe”的进程的CPU和内存占用量。如果短时间内迅速上升,超出预期,就要考虑是不是“假死”。另外一种判断就是在异常处理中专门捕获KeyboardInterrupt异常,在程序持续无输出的时候按Ctrl+C尝试中断。具体操作如下:

    try:

    # ... your code here

    except Exception as e: # catch all kinds of exceptions

    if e.__class__ == KeyboardInterrupt: # if keyboard interruption is caught

    raise KeyboardInterrupt # halt the program

    # ... your remaining code here

    由此可以用Ctrl+C中断,此时Python应当会抛出异常,同时会给出程序回溯的路线,这个时候可以依此找出卡住的语句。如果发现如此设置还是中止不了................

    (PS:如果做了上述的异常处理,并加入了logging或pysnooper等,可能在控制台上看不到回溯,这个时候就要查看日志文件里的内容。)

    非常抱歉,我也没办法.........毕竟这种情况也很罕见,没有太多的经验............

    以上。

    展开全文
  • 一、进程池为什么要有进程池?进程池的概念。在程序实际处理问题过程中,忙时会有成千上万的任务需要被执行,闲时可能只有零星任务。那么在成千上万个任务需要被执行的时候,我们就需要去创建成千上万个进程么?首先...

    一、进程池

    为什么要有进程池?进程池的概念。

    在程序实际处理问题过程中,忙时会有成千上万的任务需要被执行,闲时可能只有零星任务。那么在成千上万个任务需要被执行的时候,我们就需要去创建成千上万个进程么?首先,创建进程需要消耗时间,销毁进程也需要消耗时间。第二即便开启了成千上万的进程,操作系统也不能让他们同时执行,这样反而会影响程序的效率。因此我们不能无限制的根据任务开启或者结束进程。那么我们要怎么做呢?

    在这里,要给大家介绍一个进程池的概念,定义一个池子,在里面放上固定数量的进程,有需求来了,就拿一个池中的进程来处理任务,等到处理完毕,进程并不关闭,而是将进程再放回进程池中继续等待任务。如果有很多任务需要执行,池中的进程数量不够,任务就要等待之前的进程执行任务完毕归来,拿到空闲进程才能继续执行。也就是说,池中进程的数量是固定的,那么同一时间最多有固定数量的进程在运行。这样不会增加操作系统的调度难度,还节省了开闭进程的时间,也一定程度上能够实现并发效果。

    二、概念介绍——multiprocess.Pool

    Pool([numprocess [,initializer [, initargs]]]):创建进程池

    三、参数用法

    numprocess:要创建的进程数,如果省略,将默认使用cpu_count()的值

    initializer:是每个工作进程启动时要执行的可调用对象,默认为None

    initargs:是要传给initializer的参数组

    四、主要方法

    p.apply(func [, args [, kwargs]]):在一个池工作进程中执行func(*args,**kwargs),然后返回结果。需要强调的是:此操作并不会在所有池工作进程中并执行func函数。如果要通过不同参数并发地执行func函数,必须从不同线程调用p.apply()函数或者使用p.apply_async()

    p.apply_async(func [, args [, kwargs]]):在一个池工作进程中执行func(*args,**kwargs),然后返回结果。此方法的结果是AsyncResult类的实例,callback是可调用对象,接收输入参数。当func的结果变为可用时,将理解传递给callback。callback禁止执行任何阻塞操作,否则将接收其他异步操作中的结果。

    p.close():关闭进程池,防止进一步操作。如果所有操作持续挂起,它们将在工作进程终止前完成

    P.join():等待所有工作进程退出。此方法只能在close()或teminate()之后调用

    五、其他方法(了解)

    方法apply_async()和map_async()的返回值是AsyncResul的实例obj。实例具有以下方法:

    obj.get():返回结果,如果有必要则等待结果到达。timeout是可选的。如果在指定时间内还没有到达,将引发一场。如果远程操作中引发了异常,它将在调用此方法时再次被引发。

    obj.ready():如果调用完成,返回True

    obj.successful():如果调用完成且没有引发异常,返回True,如果在结果就绪之前调用此方法,引发异常

    obj.wait([timeout]):等待结果变为可用。

    obj.terminate():立即终止所有工作进程,同时不执行任何清理或结束任何挂起工作。如果p被垃圾回收,将自动调用此函数

    六、代码实例——multiprocess.Pool

    6.1 同步

    import os,time

    from multiprocessing import Pool

    def work(n):

    print('%s run' %os.getpid())

    time.sleep(3)

    return n**2

    if __name__ == '__main__':

    p=Pool(3) #进程池中从无到有创建三个进程,以后一直是这三个进程在执行任务

    res_l=[]

    for i in range(10):

    res=p.apply(work,args=(i,)) # 同步调用,直到本次任务执行完毕拿到res,等待任务work执行的过程中可能有阻塞也可能没有阻塞

    # 但不管该任务是否存在阻塞,同步调用都会在原地等着

    print(res_l)

    6.2 异步

    import os

    import time

    import random

    from multiprocessing import Pool

    def work(n):

    print('%s run' %os.getpid())

    time.sleep(random.random())

    return n**2

    if __name__ == '__main__':

    p=Pool(3) #进程池中从无到有创建三个进程,以后一直是这三个进程在执行任务

    res_l=[]

    for i in range(10):

    res=p.apply_async(work,args=(i,)) # 异步运行,根据进程池中有的进程数,每次最多3个子进程在异步执行

    # 返回结果之后,将结果放入列表,归还进程,之后再执行新的任务

    # 需要注意的是,进程池中的三个进程不会同时开启或者同时结束

    # 而是执行完一个就释放一个进程,这个进程就去接收新的任务。

    res_l.append(res)

    # 异步apply_async用法:如果使用异步提交的任务,主进程需要使用jion,等待进程池内任务都处理完,然后可以用get收集结果

    # 否则,主进程结束,进程池可能还没来得及执行,也就跟着一起结束了

    p.close()

    p.join()

    for res in res_l:

    print(res.get()) #使用get来获取apply_aync的结果,如果是apply,则没有get方法,因为apply是同步执行,立刻获取结果,也根本无需get

    七、进程池版socket并发聊天练习

    7.1 server

    #Pool内的进程数默认是cpu核数,假设为4(查看方法os.cpu_count())

    #开启6个客户端,会发现2个客户端处于等待状态

    #在每个进程内查看pid,会发现pid使用为4个,即多个客户端公用4个进程

    from socket import *

    from multiprocessing import Pool

    import os

    server=socket(AF_INET,SOCK_STREAM)

    server.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)

    server.bind(('127.0.0.1',8080))

    server.listen(5)

    def talk(conn):

    print('进程pid: %s' %os.getpid())

    while True:

    try:

    msg=conn.recv(1024)

    if not msg:break

    conn.send(msg.upper())

    except Exception:

    break

    if __name__ == '__main__':

    p=Pool(4)

    while True:

    conn,*_=server.accept()

    p.apply_async(talk,args=(conn,))

    # p.apply(talk,args=(conn,client_addr)) #同步的话,则同一时间只有一个客户端能访问

    7.2 client

    from socket import *

    client=socket(AF_INET,SOCK_STREAM)

    client.connect(('127.0.0.1',8080))

    while True:

    msg=input('>>: ').strip()

    if not msg:continue

    client.send(msg.encode('utf-8'))

    msg=client.recv(1024)

    print(msg.decode('utf-8'))

    发现:并发开启多个客户端,服务端同一时间只有4个不同的pid,只能结束一个客户端,另外一个客户端才会进来。

    八、回调函数

    需要回调函数的场景:进程池中任何一个任务一旦处理完了,就立即告知主进程:我好了额,你可以处理我的结果了。主进程则调用一个函数去处理该结果,该函数即回调函数

    我们可以把耗时间(阻塞)的任务放到进程池中,然后指定回调函数(主进程负责执行),这样主进程在执行回调函数时就省去了I/O的过程,直接拿到的是任务的结果。

    8.1 使用多进程请求多个url来减少网络等待浪费的时间

    from multiprocessing import Pool

    import requests

    import json

    import os

    def get_page(url):

    print(' get %s' %(os.getpid(),url))

    respone=requests.get(url)

    if respone.status_code == 200:

    return {'url':url,'text':respone.text}

    def pasrse_page(res):

    print(' parse %s' %(os.getpid(),res['url']))

    parse_res='url: size:[%s]\n' %(res['url'],len(res['text']))

    with open('db.txt','a') as f:

    f.write(parse_res)

    if __name__ == '__main__':

    urls=[

    'https://www.baidu.com',

    'https://www.python.org',

    'https://www.openstack.org',

    'https://help.github.com/',

    'http://www.sina.com.cn/'

    ]

    p=Pool(3)

    res_l=[]

    for url in urls:

    res=p.apply_async(get_page,args=(url,),callback=pasrse_page)

    res_l.append(res)

    p.close()

    p.join()

    print([res.get() for res in res_l]) #拿到的是get_page的结果,其实完全没必要拿该结果,该结果已经传给回调函数处理了

    '''

    打印结果:

    get https://www.baidu.com

    get https://www.python.org

    get https://www.openstack.org

    get https://help.github.com/

    parse https://www.baidu.com

    get http://www.sina.com.cn/

    parse https://www.python.org

    parse https://help.github.com/

    parse http://www.sina.com.cn/

    parse https://www.openstack.org

    [{'url': 'https://www.baidu.com', 'text': '\r\n...',...}]

    '''

    8.2 爬虫实例

    import re

    from urllib.request import urlopen

    from multiprocessing import Pool

    def get_page(url,pattern):

    response=urlopen(url).read().decode('utf-8')

    return pattern,response

    def parse_page(info):

    pattern,page_content=info

    res=re.findall(pattern,page_content)

    for item in res:

    dic={

    'index':item[0].strip(),

    'title':item[1].strip(),

    'actor':item[2].strip(),

    'time':item[3].strip(),

    }

    print(dic)

    if __name__ == '__main__':

    regex = r'

    .*?<.>(\d+).*?title="(.*?)".*?class="movie-item-info".*?

    (.*?)

    .*?

    (.*?)

    '

    pattern1=re.compile(regex,re.S)

    url_dic={

    'http://maoyan.com/board/7':pattern1,

    }

    p=Pool()

    res_l=[]

    for url,pattern in url_dic.items():

    res=p.apply_async(get_page,args=(url,pattern),callback=parse_page)

    res_l.append(res)

    for i in res_l:

    i.get()

    九、无需回调函数

    如果在主进程中等待进程池中所有任务都执行完毕后,再统一处理结果,则无需回调函数。

    from multiprocessing import Pool

    import time,random,os

    def work(n):

    time.sleep(1)

    return n**2

    if __name__ == '__main__':

    p=Pool()

    res_l=[]

    for i in range(10):

    res=p.apply_async(work,args=(i,))

    res_l.append(res)

    p.close()

    p.join() #等待进程池中所有进程执行完毕

    nums=[]

    for res in res_l:

    nums.append(res.get()) #拿到所有结果

    print(nums) #主进程拿到所有的处理结果,可以在主进程中进行统一进行处理

    展开全文
  • 我就想知道我运行一个本来没有问题的程序那么难吗? 这一个ATM模拟程序,也在这个站找的代码,然后导入到我的MyEclipse2017中怎么做都无法运行,文件夹上有红色错误提示(❌&#...
  • 检查代码是否上传失败, 重新上传代码检查数据集上传是否正确检查代码数据集导入路径是否正确检查dataloader returen的data和label 最后发现os.listdir() 在ubuntu中乱序读入数据的。。。所以模型data与label压根没...

    这个问题干扰我一天的进度了。
    目前,终于找到!!!!

    没有报错的情况下,大概率是导入数据问题。我先说下我的具体的check步骤。

    检查代码是否上传失败, 重新上传代码
    检查数据集上传是否正确
    检查代码数据集导入路径是否正确
    检查dataloader returen的data和label

    最后发现os.listdir() 在ubuntu中是乱序读入数据的。。。所以模型data与label压根没配对。。。
    以此为戒,希望后续牢记。关于,集群debug,参考博客

    我最后的处理方法。(我的data是png,label是tiff)

            self.data_name = os.listdir(data_path)
            # self.label_name = os.listdir(label_path)
            self.label_name = self.data_name.copy()
            self.label_name = [name.replace(".png", ".tiff") for name in self.label_name]
    
            self.data_path = []
            self.label_path = []
    
            for data, label in zip(self.data_name, self.label_name):
                self.data_path.append(data_path + "/" + data)
                self.label_path.append(label_path + "/" + label)
    

    在这里插入图片描述

    展开全文
  • 主要问题是在下面的for嵌套循环的地方,按我的理解代码运行出来不应该那样的结果,但是我明白它为何会运行出来那样的结果,代码如下: ``` unit=input('请输入单元号:') floor=int(input('请输入楼层:')) ...
  • 什么运行结果没出来?编译和构建都没有问题啊。 这代码:vc++6.0的编译环境 #include #include int out(int p); void main(){ int a[1],b[7],m=0,j=0,i,n,p; printf("请输入一个十进制整数n:"); ...
  • 问题:自己看了题解之后写了代码,可是还是出来,哪里出错了,请大家指教!!!!!! 我的代码: ```#include #include #include #include #include using namespace std; int len[20],letter[20],dex,...
  • VS里面可以运行代码,到了VSocde里就运行了!这什么! 这List.cpp中相关代码 bool List::insertByTail(Node* pNode) { Node* tailNode = headNode->next; while (tailNode->next !
  • 之前练习的时候,用CSS编辑完任何栏目,只要正确的,之后能立马在HTML中显示出来,但是今天同样在用CSS编辑完.menu栏目之后,然后在html中编辑好内容就是运行不起来,为什么呢? 解决问题 我的方法:由...
  • 放弃那段代码(或者自己检查一下这行代码什么问题),我这个例子中计算一个积分,因为这个积分不出来的,所以运行崩溃了。 所以这一行得先中止运行,不然后面的代码行都运行不了。 先选中最开始的陷入死...
  • 1.原因就是项目导入成功了,但没有识别出来,所以main方法找到 2.解决的方法,打开Project structure,点击modules,让右侧的Java项目各项标记 3.让java代码属于source,点击java再点击source这个过程就是让...
  • 有一个人脸识别类CameraSurfaceView,布局文件改的显示没问题,结果运行出来不一样,最后排查是代码中动态设置了,醉了。 一切以代码运行为准!! LayoutParams params = surfaceView.getLayoutParams(); Point ...
  • 有的时候我们使用了和别人相同的代码做了一个功能,但是发现运行不能通过,这是什么原因呢。 仔细检查完程序,试着添加了权限才运行显示出来了,添加权限是写程序中比较容易忽略的方面,在这里记录下这个解决bug的...
  • 从页面上也观察不出来是什么问题,后来在Anaconda Pormpt中启动Jupyter Notebook,我一开始还以为是自动启动的,傻傻的等它自动运行。。。结果是在浏览器中操作,命令行中才会跑模块的运行情况。要在浏览器中shift+...
  • APP作为TCP服务端,WiFiESP8266模块,单片机正点原子mini版STM32的,代码也写出来了但是与WiFi连接成功,求问到底哪里不对啊,代码运行问题,代码如下: ``` package ...
  • 什么运行不出来啊?我按书上来的到底哪里有错啊?谢谢各位指点啦! 还有就是一编译就出来这个问题![图片说明](https://img-ask.csdn.net/upload/201507/14/1436864584_942701.png)。 这个编译以后的错误!...
  • 今天中午在看Java视频的过程中,跟着老师一起敲代码,敲好了,却发现运行不出来,一直有错误。第一个运行错误为:在Run AS选项中只有Run Configurations(运行配置),而没有Java Application出现Java Application才...
  • 把光盘中的源代码粘贴出来发现还是没有窗口在运行,实在想明白 (运行环境:VS2013,WINDOWS7) 以下源代码: #include #define ID_LIST 1 #define ID_TEXT 2 LRESULT CALLBACK WndProc (HWND, UINT,...
  • 目前都在Win7上开发了,这样也得把以前的代码放到Win7上编译,这样开发出来的程序在Win7上运行很正常,无论功能或者速度,都没有问题。但客户那里是运行XP的电脑,需要放到XP上运行。这样问题就来了,在Win7上编译...
  • ... html在客户端显示,其缓存存在于浏览器,强制刷新可以解决问题...众所周知,Java能够运行是依赖于jvm,首先部署到tomcat上的.class文件编译成字节码形式,jvm通过加载、连接、初始化三个步骤对该类初始化(类加载...
  • 问题】当输入值为0.05时,运行出来的结果为1,没有问题,但是当输入值为0.01,运行出来的结果居然0?应该1呀!!什么情况?! 代码如下: ![图片说明]...
  • 今天在写代码的时候发现程序运行后,在onCreate里面写的布局,一点都没有显示出来,项目也没有报错,显示的界面就是一片空白,这是什么鬼???  刚开始我以为是主题或者 背景颜色的问题,后来都改了,结果程序...
  • 写了一年的代码,今天终于体会到什么是bug… 今天在写一个登录案列 用的SpringSecurity框架 ,一切跟着教程配置好之后我满怀期待的运行起了项目,刚开始有一两个小bug都很快解决了。但是噩梦才刚刚开始。 项目成功...
  • 刚接触python,如题,python designer设计出的页面与用python 调用后显示的一致,求问大神这个是什么问题,怎么解决。 #1. Qt designed预览界面 ![图片说明]...
  • 是《深入理解程序设计 使用Linux汇编语言》这本书里的第二段程序。 书上用的是as编译器,我想用nasm...这是什么原因啊? 编译器:nasm 2.13.02 连接器:ld 2.30 结果检查方式:程序运行结束后输入`echo $?`
  • 运行程序前执行自己的代码

    千次阅读 2009-01-08 09:45:00
    作 者: 救世猪 来看雪两年多了,到现在还是个相当菜的菜鸟,只索取,从来没有过回报,因为水平太次,实在不出来什么~ 这个小程序实际做毕业设计的时候写的,当时写完之后,没有太大的问题了,就没有再改(能...
  • 小白一枚,平常在学校学的VC6.0,并清楚两种开发软件有什么区别也知道该怎么改,求大神指点!! #include "StdAfx.h" #include #include #include #include using namespace std; double D_Operate(double x,...
  • 本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等 软件的核心载体程序...软件被开发出来文本格式的代码,这些代码通常能直接运行,需要使用编译器编译成操作系统或者虚拟机可以运行...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 962
精华内容 384
关键字:

代码运行不出来是什么问题