-
Jacobi迭代法matlab程序代码,我是个新手,试了一下输入了A矩阵,但这个函数一直运行不出来,是什么问题呢...
2020-03-11 12:09:54求大神解答: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(2th);
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是特征值 ,求大家帮帮忙,是真的不会,拜托拜托~ -
python代码运行到一半终止_Python 程序运行时卡住,既不报错,也不停止,也不动,是什么原因?...
2020-11-30 00:00:39光看这程序似乎也没有什么问题,而且卡住也有多种原因,题主的情况也不一定是卡住——我猜题主是根据一直没有输出来判断的吧。还是先讲我的处理方案——调试。看来题主用的是类似于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等,可能在控制台上看不到回溯,这个时候就要查看日志文件里的内容。)
非常抱歉,我也没办法.........毕竟这种情况也很罕见,没有太多的经验............
以上。
-
python代码运行出来是process_Python程序中的进程操作-进程池(multiprocess.Pool)
2020-12-01 16:32:07一、进程池为什么要有进程池?进程池的概念。在程序实际处理问题过程中,忙时会有成千上万的任务需要被执行,闲时可能只有零星任务。那么在成千上万个任务需要被执行的时候,我们就需要去创建成千上万个进程么?首先...一、进程池
为什么要有进程池?进程池的概念。
在程序实际处理问题过程中,忙时会有成千上万的任务需要被执行,闲时可能只有零星任务。那么在成千上万个任务需要被执行的时候,我们就需要去创建成千上万个进程么?首先,创建进程需要消耗时间,销毁进程也需要消耗时间。第二即便开启了成千上万的进程,操作系统也不能让他们同时执行,这样反而会影响程序的效率。因此我们不能无限制的根据任务开启或者结束进程。那么我们要怎么做呢?
在这里,要给大家介绍一个进程池的概念,定义一个池子,在里面放上固定数量的进程,有需求来了,就拿一个池中的进程来处理任务,等到处理完毕,进程并不关闭,而是将进程再放回进程池中继续等待任务。如果有很多任务需要执行,池中的进程数量不够,任务就要等待之前的进程执行任务完毕归来,拿到空闲进程才能继续执行。也就是说,池中进程的数量是固定的,那么同一时间最多有固定数量的进程在运行。这样不会增加操作系统的调度难度,还节省了开闭进程的时间,也一定程度上能够实现并发效果。
二、概念介绍——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) #主进程拿到所有的处理结果,可以在主进程中进行统一进行处理
-
为什么好好的Java程序在我这儿就运行不出来?
2020-12-22 08:36:06我就想知道我运行一个本来没有问题的程序那么难吗? 这是一个ATM模拟程序,也是在这个站找的代码,然后导入到我的MyEclipse2017中怎么做都无法运行,文件夹上有红色错误提示(❌... -
windows 运行pytorch,在服务器上运行没有失败,但是什么都训练不出来。
2019-11-23 14:11:52检查代码是否上传失败, 重新上传代码检查数据集上传是否正确检查代码数据集导入路径是否正确检查dataloader returen的data和label 最后发现os.listdir() 在ubuntu中是乱序读入数据的。。。所以模型data与label压根没...这个问题干扰我一天的进度了。
目前,终于找到!!!!没有报错的情况下,大概率是导入数据问题。我先说下我的具体的check步骤。
最后发现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)
-
麻烦问下我的这段代码为什么运行结果跟我想的不一样,求指导?
2020-01-03 21:42:15主要问题是在下面的for嵌套循环的地方,按我的理解代码运行出来不应该是那样的结果,但是我不明白它为何会运行出来那样的结果,代码如下: ``` unit=input('请输入单元号:') floor=int(input('请输入楼层:')) ... -
这个程序哪里出问题了?为什么运行结果没出来?编译和构建都没有问题啊。
2019-03-28 09:10:32为什么运行结果没出来?编译和构建都没有问题啊。 这是源代码: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:"); ... -
着急,为什么总是运行不出来 HDU题目:A - GREAT + SWERC = PORTO
2018-05-26 06:58:16问题:自己看了题解之后写了代码,可是还是出不来,不懂是哪里出错了,请大家指教!!!!!! 我的代码: ```#include #include #include #include #include using namespace std; int len[20],letter[20],dex,... -
写个单链表,VS里面可以运行的代码,VScode居然不能运行?指针原因?
2021-01-26 10:36:34VS里面可以运行的代码,到了VSocde里就不能运行了!这是为什么! 这是List.cpp中相关代码 bool List::insertByTail(Node* pNode) { Node* tailNode = headNode->next; while (tailNode->next ! -
牛腩新闻发布--CSS编辑之后HTML运行不出来
2018-06-04 08:33:30之前练习的时候,用CSS编辑完任何栏目,只要是正确的,之后能立马在HTML中显示出来,但是今天同样是在用CSS编辑完.menu栏目之后,然后在html中编辑好内容就是运行不起来,为什么呢? 解决问题 我的方法是:由... -
jupyter notebook代码运行一直没有反应, 只显示*号
2021-02-10 12:46:53放弃那段代码(或者自己检查一下这行代码有什么问题),我这个例子中是计算一个积分,因为这个积分是积不出来的,所以运行崩溃了。 所以这一行得先中止运行,不然后面的代码行都运行不了。 先选中最开始的陷入死... -
idea导入项目看似项目没什么问题,就是运行找不到main方法
2020-11-03 11:49:011.原因就是项目是导入成功了,但没有识别出来,所以main方法找不到 2.解决的方法是,打开Project structure,点击modules,让右侧的Java项目各项标记 3.让java代码属于source,点击java再点击source这个过程就是让... -
布局文件改了,编译工具中显示没问题,运行到机器上就是不一样,什么原因?
2019-04-08 17:41:52有一个人脸识别类CameraSurfaceView,布局文件改的显示没问题,结果运行出来不一样,最后排查是代码中动态设置了,醉了。 一切以代码中运行为准!! LayoutParams params = surfaceView.getLayoutParams(); Point ... -
android关于代码正确但是运行不显示相应的效果的原因
2015-10-19 15:39:25有的时候我们使用了和别人相同的代码做了一个功能,但是发现运行不能通过,这是什么原因呢。 仔细检查完程序,试着添加了权限才运行显示出来了,添加权限是写程序中比较容易忽略的方面,在这里记录下这个解决bug的... -
Jupyter Notebook运行代码无反应 解决方法
2019-03-26 16:40:59从页面上也观察不出来是什么问题,后来在Anaconda Pormpt中启动Jupyter Notebook,我一开始还以为是自动启动的,傻傻的等它自动运行。。。结果是在浏览器中操作,命令行中才会跑模块的运行情况。要在浏览器中shift+... -
APP与STM32单片机通过WiFi连接,但是WiFi连接不成功,求问为什么连接不上,是我代码出问题了吗?求问到底是...
2020-04-14 11:26:23APP是作为TCP服务端,WiFi是ESP8266模块,单片机是正点原子mini版STM32的,代码也写出来了但是与WiFi连接不成功,求问到底是哪里不对啊,代码运行没问题,代码如下: ``` package ... -
struts的问题,运行有错,错误代码404,求各位指点啊
2015-07-14 07:49:59为什么运行不出来啊?我是按书上来的到底哪里有错啊?谢谢各位指点啦! 还有就是一编译就出来这个问题。 这个是编译以后的错误!... -
hadoop jar 找不到main class_eclipse中代码写好了,却找不到main方法无法运行的解决措施...
2021-01-22 21:51:42今天中午在看Java视频的过程中,跟着老师一起敲代码,敲好了,却发现运行不出来,一直有错误。第一个运行错误为:在Run AS选项中只有Run Configurations(运行配置),而没有Java Application出现Java Application才... -
win32编程中窗口不显示是什么问题
2015-05-27 07:01:48把光盘中的源代码粘贴出来发现还是没有窗口在运行,实在想不明白 (运行环境:VS2013,WINDOWS7) 以下源代码: #include #define ID_LIST 1 #define ID_TEXT 2 LRESULT CALLBACK WndProc (HWND, UINT,... -
为什么在Win7上编译的ADO程序不能在XP上运行
2014-03-07 09:15:40目前都是在Win7上开发了,这样也得把以前的代码放到Win7上编译,这样开发出来的程序在Win7上运行很正常,无论功能或者速度,都没有问题。但客户那里是运行XP的电脑,需要放到XP上运行。这样问题就来了,在Win7上编译... -
eclipse将项目部署到tomcat中,为什么有的时候刷新不出来(代码正确),这时候部署的tomcat上的代码资源又...
2019-07-04 23:52:57... html在客户端显示,其缓存存在于浏览器,强制刷新可以解决问题...众所周知,Java能够运行是依赖于jvm,首先部署到tomcat上的.class文件编译成字节码形式,jvm通过加载、连接、初始化三个步骤对该类初始化(类加载... -
【新手救助】同样的for循环语句,运行出来的结果居然不一样?
2018-09-20 14:12:23【问题】当输入值为0.05时,运行出来的结果为1,没有问题,但是当输入值为0.01,运行出来的结果居然是0?应该是1呀!!什么情况?! 代码如下: ![图片说明]... -
Android 程序运行后,界面不显示的问题解决办法
2017-12-23 16:51:51今天在写代码的时候发现程序运行后,在onCreate里面写的布局,一点都没有显示出来,项目也没有报错,显示的界面就是一片空白,这是什么鬼??? 刚开始我以为是主题或者 背景颜色的问题,后来都改了,结果程序... -
写了一年的代码,今天终于体会到什么是bug....
2020-08-16 16:56:45写了一年的代码,今天终于体会到什么是bug… 今天在写一个登录案列 用的是SpringSecurity框架 ,一切跟着教程配置好之后我满怀期待的运行起了项目,刚开始有一两个小bug都很快解决了。但是噩梦才刚刚开始。 项目成功... -
python运行出来的界面与Qt designer预览的不一致
2020-06-25 19:37:13刚接触python,如题,python designer设计出的页面与用python 调用后显示的不一致,求问大神这个是什么问题,怎么解决。 #1. Qt designed预览界面 ![图片说明]... -
一段找最大值的汇编代码无法正常运行
2019-11-23 20:45:25是《深入理解程序设计 使用Linux汇编语言》这本书里的第二段程序。 书上用的是as编译器,我想用nasm...这是什么原因啊? 编译器:nasm 2.13.02 连接器:ld 2.30 结果检查方式:程序运行结束后输入`echo $?` -
运行程序前执行自己的代码
2009-01-08 09:45:00作 者: 救世猪 来看雪两年多了,到现在还是个相当菜的菜鸟,只索取,从来没有过回报,因为水平太次,实在是写不出来什么~ 这个小程序实际是做毕业设计的时候写的,当时写完之后,没有太大的问题了,就没有再改(能... -
VC6.0运行没问题的程序为什么到了VS2010里就运行异常了?
2016-08-06 06:14:51小白一枚,平常在学校学的是VC6.0,并不清楚两种开发软件有什么区别也不知道该怎么改,求大神指点!! #include "StdAfx.h" #include #include #include #include using namespace std; double D_Operate(double x,... -
阿里架构师剖析程序运行原理,程序是如何运行又是如何崩溃的?
2020-10-20 21:29:58本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等 软件的核心载体是程序...软件被开发出来,是文本格式的代码,这些代码通常不能直接运行,需要使用编译器编译成操作系统或者虚拟机可以运行...
-
2021-02-25
-
select和epoll的过程分析与比较
-
UTC、GMT与本地时钟
-
Spring学习笔记之配置Bean
-
Unity 热更新技术-ILRuntime
-
深入剖析 ConcurrentHashMap
-
项目管理工具与方法
-
具有超窄带宽的稳定锁模纳秒无Chi脉冲产生
-
2012年上半年 信息系统管理工程师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
电影记录-源码
-
物联网之mqtt实现(emqx+springboot+mqtt附源码)
-
FPS游戏逆向-UE4虚幻四游戏逆向
-
大数据多维分析引擎在魅族的实践
-
docker 20.10.3 配置国内源
-
arwin:Visual C ++项目中的arwin-源码
-
C++11 14 17 20 多线程从原理到线程池实战
-
LVS + Keepalived 实现 MySQL 负载均衡与高可用
-
2017年上半年 信息系统监理师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
基于采用级联调制器的光电振荡器的自振荡光学频率梳状发生器
-
微博时间格式转换