用python试MFCC, 不同的方法结果不同,请哪位大侠帮忙看看 5C

刚开始学习MFCC,从网上找了两种方法,求MFCC,试用了下,发现结果完全不同,请高手帮忙解释,或能给出正确结果:
代码如下 :
import numpy as np
from scipy import signal
from scipy.fftpack import dct
import pylab as plt
import librosa

def enframe(wave_data, nw, inc, winfunc):
'''将音频信号分帧。
参数含义:
wave_data:原始音频型号
nw:每一帧的长度(这里指采样点的长度,即采样频率乘以时间间隔)
inc:相邻帧的间隔
'''
wlen=len(wave_data) #信号总长度
if wlen<=nw:
nf=1
else:
nf=int(np.ceil((1.0*wlen-nw+inc)/inc))
pad_length=int((nf-1)*inc+nw) #所有帧加起来总的铺平后的长度
print(wlen,nf, pad_length)
zeros=np.zeros((pad_length-wlen,)) #不够的长度使用0填补
pad_signal=np.concatenate((wave_data,zeros)) #填补后的信号
indices=np.tile(np.arange(0,nw),(nf,1))+np.tile(np.arange(0,nf*inc,inc),(nw,1)).T #相当于对所有帧的时间点进行抽取,得到nf*nw长度的矩阵
indices=np.array(indices,dtype=np.int32 #indices 为pad_signal的位置
frames=pad_signal[indices] #得到帧信号
win=np.tile(winfunc,(nf,1)) #window窗函数,这里默认取1
return frames*win #返回帧信号矩阵

Df=5 #采样点时间间隔
fs=8000 #采样频率
N=fs/Df #采样点数

t = np.arange(0,(N-1)/fs,1/fs) #取样时间

wave_data=np.sin(2*np.pi*200*t) # 待处理的信号

#预加重
b,a = signal.butter(1,1-0.97,'high')
emphasized_signal = signal.filtfilt(b,a,wave_data)

#归一化
lifts=[]
for n in range(1,13):
lift =1 + 6 * np.sin(np.pi * n / 12)
lifts.append(lift)

#分帧、加窗
winfunc = signal.hamming(256) #汉明窗

#分帧函数:每帧长度256 ,不重叠长度80:
X=enframe(wave_data, 256, 80, winfunc)
frameNum =X.shape[0] #获取分帧后的帧数

下面是三组代码及结果
(1)第一种情况:
for i in range(frameNum):
y=X[i,:]
yf = np.abs(np.fft.rfft(y))
melM = librosa.feature.mfcc(y,fs,S=yf,n_mfcc=12)
print(melM)
输出结果:
[12.01187176 16.44704344 15.61216672 14.38118246 12.77777051 10.84203157 8.62860918 6.19697322 3.61622903 0.95595607 -1.70837193 -4.30547829]

(2)第二种情况:
for i in range(frameNum):
y=X[i,:]
yf = np.abs(np.fft.rfft(y))
yf=yf**2
melM = librosa.feature.mfcc(y,fs,S=yf,n_mfcc=12)
print(melM)
输出结果:
[ 570.37065963 795.19627788 761.25293536 705.78283689 630.39580985 537.27662246 429.12048164 309.05311082 180.53860667 47.27705996 -86.90415637 -218.16302183]
这两种情况,MFCC对应的图的形状是相同

(3)第三种情况:
for i in range(frameNum):
y=X[i,:]
melM = librosa.feature.mfcc(y,fs,S=None,n_mfcc=12)
print(melM)
结果:
[[-278.17089678] [ 144.78769227] [ 56.44110736] [ 40.11968822]
[ 25.1757355 ] [ 14.67492614] [ 5.77245624] [ -0.96605092]
[ -7.23574856] [ -12.32471135] [ -17.40294169] [ -20.9566881 ]]

(4)第四种情况:
for i in range(frameNum):
y=X[i,:]
yf = np.abs(np.fft.rfft(y)) #频谱取模
yf = yf**2 #谱线能量

nfilt = 24   #Mel滤波器数量
low_freq_mel = 0
NFFT=256
high_freq_mel = (2595 * np.log10(1 + (fs / 2) / 700))  # 把 Hz 变成 Mel
mel_points = np.linspace(low_freq_mel, high_freq_mel, nfilt + 2)  # 将梅尔刻度等间隔
hz_points = (700 * (10**(mel_points / 2595) - 1))  # 把 Mel 变成 Hz
bin = np.floor((NFFT + 1) * hz_points / fs)
fbank = np.zeros((nfilt, int(np.floor(NFFT / 2 + 1))))  
for m in range(1, nfilt + 1):
    f_m_minus = int(bin[m - 1])   # left
    f_m = int(bin[m])             # center
    f_m_plus = int(bin[m + 1])    # right
    for k in range(f_m_minus, f_m):
        fbank[m - 1, k] = (k - bin[m - 1]) / (bin[m] - bin[m - 1])
    for k in range(f_m, f_m_plus):
        fbank[m - 1, k] = (bin[m + 1] - k) / (bin[m + 1] - bin[m])
filter_banks = np.dot(yf[0:129], fbank.T)
filter_banks = np.where(filter_banks == 0, np.finfo(float).eps, filter_banks)  # 数值稳定性
filter_banks = 10 * np.log10(filter_banks)  # dB   此为分贝标准公式 
filter_banks -= (np.mean(filter_banks, axis=0) + 1e-8)
#DCT系数
num_ceps = 12
c2 = dct(filter_banks, type=2, axis=-1, norm='ortho')[ 1 : (num_ceps + 1)] # Keep 2-13
c2 *= lifts

print(c2)
结果是:
[ 152.16939829 103.18780826 53.15848861 -3.0957145 -67.3315891
-123.00839875 -157.48879067 -150.09115643 -104.25335171 -47.27345817 -6.68998885 1.39787529]

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
帮忙看看,为什么TStringList结果不同
memo1文本内容:rnfygjh5jghgrntrhfg5jkhhrnfjhfhyhdfrn6695thurnfjjy5hghfrnrn[code=Delphi(Pascal)]unit Unit1;rnrninterfacernrnusesrn Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,rn Dialogs, StdCtrls, OleServer, VBScript_RegExp_55_TLB;rnrntypern TForm1 = class(TForm)rn Memo1: TMemo;rn Memo2: TMemo;rn Memo3: TMemo;rn Button1: TButton;rn Button2: TButton;rn RegExp1: TRegExp;rn Button3: TButton;rn procedure Button1Click(Sender: TObject);rn procedure Button2Click(Sender: TObject);rn procedure Button3Click(Sender: TObject);rn privatern Private declarations rn publicrn Public declarations rn end;rnrnvarrn Form1: TForm1;rnrnimplementationrnrn$R *.dfmrnrnprocedure TForm1.Button1Click(Sender: TObject);rnvarrnmachs: IMatchCollection;rnMatchs: Match;rnsubmatch: ISubMatches;rni : integer;rnbeginrn RegExp1.Global := true;rn RegExp1.IgnoreCase := True;rn RegExp1.Pattern := '5.*';rn machs := RegExp1.Execute(memo1.text) as IMatchCollection;rn for i := 0 to machs.Count - 1 dorn beginrn Matchs := machs.Item[i] as Match;rn submatch := Matchs.SubMatches as ISubMatches;rn memo2.lines.Add(matchs.Value);rn end;rnrn RegExp1.Pattern := '5'; rn memo3.Text := RegExp1.Replace(memo2.Text,'');rnend;rnrnrnprocedure TForm1.Button2Click(Sender: TObject);rnvarrnmachs: IMatchCollection;rnMatchs: Match;rnsubmatch: ISubMatches;rni : integer;rnaaa : Tstrings;rnbbb: Tstrings;rnbeginrn aaa := TStringList.Create;rn bbb := TStringList.Create;rn RegExp1.Global := true;rn RegExp1.IgnoreCase := True;rn RegExp1.Pattern := '5.*';rn machs := RegExp1.Execute(memo1.text) as IMatchCollection;rn for i := 0 to machs.Count - 1 dorn beginrn Matchs := machs.Item[i] as Match;rn submatch := Matchs.SubMatches as ISubMatches;rn aaa.Add(matchs.Value);rn end;rnrn RegExp1.Pattern := '5';rn bbb.Text := RegExp1.Replace(aaa.Text,'');rn memo3.Text := bbb.Text;rnend;rnrnprocedure TForm1.Button3Click(Sender: TObject);rnbeginrn memo2.Clear;rn memo3.Clear;rnend;rnrnend.[/code]rnrn为什么按钮1点击后获得的结果是:rnjghgrnjkhhrnthurnhghfrnrn而按钮2点击后获得的结果是:rnjghgrnrnjkhhrnrnthurnrnhghfrnrn我想使用TStringList不使用memo获得没有空行的结果,请教如何修改代码?rnrnrnrnrn
哪位大侠帮忙看看
本人认为是报表设计上的问题,但不知道错在什么地方rnrnrnrnrnrnrn“/WebAppcr6”应用程序中的服务器错误。rn--------------------------------------------------------------------------------rnrn指定的参数已超出有效值的范围。 rn说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 rnrn异常详细信息: System.ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。rnrn源错误: rnrnrn行 54: rn行 55: ParameterFields paramFields=CrystalReportViewer1.ParameterFieldInfo;rn行 56: ParameterField paramField=paramFields["设备参数"];rn行 57: ParameterValues curValues=paramField.CurrentValues;rn行 58: ParameterDiscreteValue discreteValue=new ParameterDiscreteValue();rn rnrn源文件: c:\inetpub\wwwroot\webappcr6\webform1.aspx.cs 行: 56 rnrn堆栈跟踪: rnrnrn[ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。]rn CrystalDecisions.Shared.ParameterFields.get_Item(String name, String subreportName)rn CrystalDecisions.Shared.ParameterFields.get_Item(String name)rn WebAppcr6.WebForm1.SetParameterFields() in c:\inetpub\wwwroot\webappcr6\webform1.aspx.cs:56rn WebAppcr6.WebForm1.OnInit(EventArgs e) in c:\inetpub\wwwroot\webappcr6\webform1.aspx.cs:39rn System.Web.UI.Control.InitRecursive(Control namingContainer)rn System.Web.UI.Page.ProcessRequestMain()rnrn rn
数组不同赋值方法导致不同结果
方法1rn[code=c]int m1[10] = 'a', 'b', 'c', 'd', 0[/code]rn写0, 是为了标记最后一个,表明结束,运行成功rnrn方法2rn[code=c]int m2[1] = "abcd"[/code]rn运行失败,提示不能找到相应地址块 rnrnrn我认为上面个两种方法是对等的,为什么会一个成功,一个不同通过?rn我是在芯片上做的模拟运行,难道是因为芯片缺少某个分区导致的失败?rnrn谢谢。
请哪位大侠看看
using System;rnusing System.Collections.Generic;rnusing System.ComponentModel;rnusing System.Data;rnusing System.Drawing;rnusing System.Linq;rnusing System.Text;rnusing System.Windows.Forms;rnrnnamespace do_Savedialogrnrn public partial class Form1 : Formrn rn public Form1()rn rn InitializeComponent();rn rnrn private void Form1_Load(object sender, EventArgs e)rn rn this.Text = "测试保存文件对话框";rn button1.Text = "保存文件";rn button1.Dock = DockStyle.Top;//设置按钮的位置rn richTextBox1.AppendText("我爱北京天安门!");//设置文本控件中的内容rn richTextBox1.AppendText("热爱人民!");rn richTextBox1.AppendText("热爱祖国!");rn saveFileDialog1.Filter = "RTF Files|*.rtf"; //设置存储文件夹的过滤器rn saveFileDialog1.defaultExt = "*.rtf"; //设置默认的文件夹rn rnrn private void button1_Click(object sender, EventArgs e)rn rn DialogResult dr = SaveFileDialog1.ShowDialog();//显示存储文件对话框rn if (dr == DialogResult.OK && SaveFileDialog1.FillName.Length > 0)rn rn richTextBox1.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.PlainText);rn MessageBox.Show("存储文件成功!", "保存文件");rn rn rn rnrnrn其中saveFileDialog1显示错误,错误显示为当前上下文中不存在名称saveFileDialog1,不知道是什么原因,求解释,谢谢
小女子关于内存映射文件不同 请大侠帮忙
最近在看这方面书 说到MapViewOfFileEx函数的时候说 如果一个进程在内存映射文件准备一个链表,然后把这个内存映射文件共享给另一个进程,那么第二个进程很可能会把诶村映射文件引射到地址空间中一个完全不同的地方。 这个地方我就不太明白了,我有几个疑问 rn1.进程在一个内存映射文件准备链表 是写入一个链表 还是怎么回事 要是我想写入的话 应该有两种属性 一种是Write 还有Writecopy 那到底是怎么回事 这个地方 T_T 。rnrn2.内存映射文件到底占不占内存啊,如果占内存是怎么占的,如果占得的话fread 读你想要的一段字节给个buf 然后就关闭文件rn 直接用buf里读出来的不也在内存中 不也挺快吗 读大文件也可以分段fread 就操纵指针不也挺好的吗 那么内存映射文件到底 优势在哪?rnrn3. virtualAlloc分配的虚拟内存是硬盘的页交换文件对吧 我总用new malloc 我什么时候才考虑用virtualAlloc呢?rnrn问题太多了,都有点想不起来了 主要现在还没看完这本书,多看几遍自己做做练习可能就明白了 但是我是太想知道一些疑问了rn帮帮小女子吧
python不同的赋值方法
写生成斐波那契数列的时候发现:     a = b b = a+b 和:     a, b = b , a+b 的结果不一样 第二种写法是先计算等号右边的值,再进行赋值    例如   a, b 初始值为 0, 1   第一种写法:a = 1, b = 1+1 = 2   第二种写法:b = 1, a+b = 1    ==>  a = 1, b = 1
这段代码在不同环境结果不同,请大侠们帮看看
这段代码在不同环境结果不同,请大侠们帮看看rnDim TransProConnectionDB As SqlConnectionrnDim strConnectiongString As String = "UID=LUHN;DATABASE=TransPro;WSID=KFB-LUHN ;Trusted_Connection=Yes;SERVER=KFB-LUHN\SQLEXPRESS"rnTransProConnectionDB = New SqlConnection(strConnectiongString)rnDim da As New SqlDataAdapter("select * from TransProInfo", TransProConnectionDB)rnDim ds As New DataSetrnda.Fill(ds)rnGridView1.DataSource = dsrnGridView1.DataBind()rnrn情况是这样的,在vs2005里的默认web服务器里执行是可以打开数据库的,执行正确rn但在发布后再执行就提示如下:rn“无法打开登录所请求的数据库 "TransPro"。登录失败。rn用户 'KFB-LUHN\ASPNET' 登录失败。 ”rnrn我明明指定的UID=LUHN,怎么会提示是用户 'KFB-LUHN\ASPNET' 去登录那?rn注:我是在本机调试,在本机发布,我认为调试执行跟发布执行是一样的,可事实不一样rnrn大家有没遇到这样的情况,知道的来说说
请大侠帮忙看看
请看下面:rn#includernclass Catrnrnpublic:rn Cat(int age=0,int weight=0):age(1),weight(2)rn rn cout<
不同编译器不同结果的问题
[code=C/C++]#include rnvoid main() rnint a,k=3; rn a=++k+k; rn printf("%d\n",a);rnrn[/code]rn[code=C/C++]#include rnvoid main() rnint a,k=3; rn a=++k+ ++k; rn printf("%d\n",a);rnrn[/code]rn上面那两个都会出现不同编译器出现不同结果吗
xml格式不同,结果不同.
请问我的xml在元素 排列换个行,结果就变了,请问这个是什么原因啊.rnsssrnrnsssrnrnrn为什么得出的结果不一样啊.帮帮我.谢谢.
md5不同的机器不同的结果??????????
这个文章是真的???rnhttp://www.csdn.net/Develop/Read_Article.asp?Id=15467
操作系统不同导致结果不同
本人做的程序是把数组内容写到Memo中,数组上限是262144,测试时把整个数组的值显示到memo中,但是在2000中memo可以显示所有内容,在98中才显示约20000内容,少了一个数量级,请高手指点。
为什么顺序不同结果不同?
[size=24px][/size][code=VB]Private Sub Form_Click()rnDim i As Integer, max As Integer, t As IntegerrnPrint "随机产生的十个数为:";rnRandomizernFor i = 1 To 10rn t = Int(100 * Rnd + 1)rn Print t;rn max = Int(100 * Rnd + 1)rn If max <= t Then max = trnNext irn Printrn Printrn Print "最大的数为:"; maxrnEnd Sub[/code]rn这是我写的程序,我不知道错哪了?请高手赐教,并告诉原因,谢谢!
不同的运行方式得到不同的结果???
一个名为SimpleForm.html的文件源代码:rnrnrnrnrn Please tell me about yourselfrnrn rnrnName: rn rnSex:rn Malern Femalern rnWhat Java primitive type best describes your personality:rnrn booleanrn bytern charrn doublern floatrn intrn longrnrn rnrnrnrnrnrn一个名为SimpleFormHandler.jsp的文件的源代码:rnrnrnrn<%rnrn// Grab the variables from the form.rn String firstName = request.getParameter("firstName");rn String lastName = request.getParameter("lastName");rn String sex = request.getParameter("sex");rn String javaType = request.getParameter("javaType");rn%>rn<%-- Print out the variables. --%>rn Hello, <%=firstName%> <%=lastName%>!rnI see that you are <%=sex%>. You know, you remind me of arn<%=javaType%> variable I once knew.rnrnrnrnrn直接运行SimpleForm.html,得不到预想的结果,rn但是如果直接在IE地址栏里写入rnhttp://localhost:8080/SimpleFormHandler.jsp?firstName=JSPrn &lastName=Programmer&sex=male&javaType=charrnrn则可以得到预期的结果。rnrn小弟初学JSP,不知道什么原因,向大家求救!rnrn
用exists和in为什么结果不同
两个表 一个表是发票信息表 另外一个表是订单物品明细表(一个订单可以对应多张发票) 其中有个字段是发票号rnrnexists语句这样 update FPH set State=1 where exists(select * from OrderDetail where OrderNo=**(订单编号))rnrnin语句这样 update FPH set State=1 where FPH in(select FPH from OrderDetail where OrderNo=**(订单编号))rnrn我觉得这两个语句应该效果是一样 但是用exists会把整个发票信息表都更新掉 用in就只更新跟订单想关联的发票 想了半天没想出答案 求各位高手给小弟解下疑惑
Python 文件读取的不同方法比对
Python 读文件的方式多种多样,但是当需要读取一个大文件的时候,不同的读取方式会有不一样的效果。 场景 逐行读取一个 2.9G 的大文件 CPU i7 6820HQ RAM 32G 方法 对每一行的读取进行一次分割字符串操作以下方法都使用 with...as 方法打开文件。 with 语句适用于对资源进行访问的场合,确保不管使用过...
调用form.submit()方法不同,而结果也不同?
rnrn rn New Document rn rn rn rn rn rnrn rn rn rn rn rn rnrn为何第一个submit不触发onsubmit事件呢?
浮点数加法精度问题,两种处理方式结果不同,大家帮忙看看!!
第一种方式:rn[code=Java]import java.math.BigDecimal;rnrnpublic class DoubleAdd rn public static void main(String[] args) rn BigDecimal b1 = new BigDecimal(Double.toString(1.15));rn BigDecimal b2 = new BigDecimal(Double.toString(1.20));rn System.out.println(b1.add(b2).doubleValue()); //output : 2.35 rn rn[/code]rnrn第二种方式:[code=Java]import java.math.BigDecimal;rnrnpublic class DoubleAdd rn public static void main(String[] args) rn BigDecimal b1 = new BigDecimal(1.15);rn BigDecimal b2 = new BigDecimal(1.20);rn System.out.println(b1.add(b2).doubleValue()); //output : 2.3499999999999996 rn rnrn[/code]rn[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/27.gif][/img]为什么会这个样子?
相同的代码,不同的结果,大家帮忙看看为什么
private void jtabdbkeyPressedUP(KeyEvent e) rn if(e.getKeyCode()==38) //响应非数字键盘向上方向键rn rn if (jtabdb.getSelectedRow() - 1>=0)rn rn this.jtabdb.setRowSelectionInterval(jtabdb.getSelectedRow()-1 ,jtabdb.getSelectedRow() );rn getjtabdbTOtxt();rn rn rn rn rn==========================================================rn以上代码运行正常,以下有问题rn==========================================================rnprivate void jtabdbkeyPressedDOWN(KeyEvent e)rn if(e.getKeyCode()==40) // 响应非数字键盘向下方向键rn rn if(jtabdb.getSelectedRow()+1!=jtabdb.getRowCount())rn rn this.jtabdb.setRowSelectionInterval(jtabdb.getSelectedRow()+1 ,jtabdb.getSelectedRow() );rn getjtabdbTOtxt();rn rn rn /* if(jtabdb.getSelectedRow() +1 !=jtabdb.getRowCount())rn rn this.jtabdb.setRowSelectionInterval(jtabdb.getSelectedRow() ,jtabdb.getSelectedRow() );rn jtabdb.getValueAt(jtabdb.getSelectedRow(),0);rn this.getjtabdbTOtxt();rn rn */rn rnrn rn==========================================================rn症状:选第一行读到Textfiled中时,显示的是上一行的数据rn最后一行无法读出
帮我看看为什么这两个程序的结果不同
rnrn#include rndouble fun ( double eps)rnrn double s=1.0,c=1.0;rn int nu=1/*作为分子*/,de=1/*作为分母*/,n;rn for(n=1;c>=eps;n++)rn rn nu*=n;rn de*=(2*n+1);rn c=1.0*nu/de;rn s+=c;rn rn return 2*s;rnrnrnrnrnmain( )rn double x;rn printf("Input eps:") ;rn scanf("%lf",&x); printf("\neps = %lf, PI=%lf\n", x, fun(x));rnrnrn*************************************rnrnrn#include rndouble fun ( double eps)rnrn double s=1.0,s1=1.0;rn int n=1;rn while(s1>=eps) rn s1=s1*n/(2*n+1); rn s=s+s1; rn n++;rn rn return 2*s;rnrnrnmain( )rn double x;rn printf("Input eps:") ;rn scanf("%lf",&x); printf("\neps = %lf, PI=%lf\n", x, fun(x));rnrnrnrn**********************************rnrn是以公式rn π/2=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+(1*2*3*4)/(3*5*7*9)+……+(1*2*3*4*……*n)/(3*5*……*(2n+1))rn来求π值。rn输入精度0.0005,第一个是3.09多,第二个是3.14多,当然第一个有问题,可是问题在哪呢?rnrnrnrnrnrn
OCX不同语言的方法不同??
某一个C++开发的OCX控件,在VB中调用,有一些比较不错的功能,但是用.Net调用,却发现只剩下为数不多的一些方法了——其他的都看不到,查看一下,某些类,已经是灰色的了。这是为何呢??rnrnC++代码我有,但是看不懂,呵呵~~一般问题在哪里,需要怎么修改??
用Gson解析日期字符串在不同环境下结果不同
问题产生 在和上游系统接口对接的过程中,在生产环境上,发现对于2018-7-25 09:32:26.0这样的字符串,Gson数据解析错误,com.google.gson.JsonSyntaxException,起初天真的以为是yyyy-MM-dd HH:mm:ss.0后边的.0搞的鬼,后来进一步确认后,才发现问题没有想象的那么简单,同样的代码,在本地环境上去解析相同格式的字符串可以正常解析,而在...
为什么在我的电脑上用不同的连接会有不同的结果?
我的电脑win2003 , iis6rn第一种连接方式,不行,显示500错误,您要访问的网页有问题,无法显示。rn<%@language=vbscript codepage=936 %>rn<%rnoption explicitrnresponse.buffer=true rndim connrndim connstrrndim dbrndb="article.mdb"rnSet conn = Server.CreateObject("ADODB.Connection")rnconnstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""&db&"")rnconn.Open connstrrn%>rn第二种,可以rn<%rndim connrndim connstrrndb="article.mdb" '数据库文件位置rnon error resume nextrnconnstr="DBQ="+server.mappath(""&db&"")+";DefaultDir=;DRIVER=Microsoft Access Driver (*.mdb);"rnset conn=server.createobject("ADODB.CONNECTION")rnif err thenrnerr.clearrnelsernconn.open connstrrnend ifrn%>rn
请各位大侠帮忙看看,
INSERT INTO table1(tab1_code,date,addDtime,Adder) select tab2_code,'2005-5-8',getdate(),'123456' from table2 where tab2_code not in (select tab1_code from table1 rnwhere date='2005-5-8' ) and tab2_code2='001'rnvb+sqlserver2000rnrn这个是我写的插入语句(批量插入,每次插入300左右的数据),date,tab1_code,CancCode(删除标记)做联合主建,rntab1_code从table2中的字段tab2_code得到,rn表中的数据大概到6、7万的时候执行插入就非常慢,请大家帮忙看看,是什么原因呢?rnrn表中的数据多,但是要插入和查出的不多,数据库中的数据如果10万以下的时候,也就是比较少的时候速度正常,能够插入和查出,可是数据表中的数据在10几万的时候就非常慢了,
请大侠们帮忙看看
本人乃一C++菜鸟,今天忽然遇到以下问题请各位帮忙解答,谢谢rnrn现有以下两个类rnClass Arn int ia;rn float fa;rn B *m_pParent;rnrnrnClass Brnrn int ib;rn float fb;rn A *m_pChild;rnrnrn如果把他们按以上顺序定义在一个文件里,则会有“B未定义的错误发生”,如果把他们分别写在两个头文件a.h和b.h(文件见后)里,则会有如下错误(VC++6.0编译):rnwarning C4182: #include nesting level is 363 deep; possible infinite recursionrnfatal error C1076: compiler limit : internal heap limit reached; use /Zm to specify a higher limitrn请问怎样才能实现以上两个类。rn---------------------------a.h内容---------------------------------------:rn#include "b.h"rnrn#ifndef __A__rn#define __A__rnClass Arn int ia;rn float fa;rn B *m_pParent;rnrnrn#endifrnrn---------------------------b.h内容---------------------------------------:rn#include "a.h"rn#ifndef __B__rn#define __B__rnrnClass Brnrn int ib;rn float fb;rn A *m_pChild;rnrnrn#endifrn
请各位大侠帮忙看看
我想把一个文本文件(已经存在)能够在我写一个程序中显示出来。rn如文本文件里有rn1.要紧rn2.药酒rnrn然后在我程序有一文本框(其他也可以),该文本框就能显示文本文件中的内容rn请问该怎么办
疑难杂症,请大侠帮忙看看!
手机升级的时候访问服务器获取更新信息,使用C#做后台,读取数据库中的更新信息返回给手机端。rnrn我首先发布了一条更新信息,手机端能获取到更新信息。rn在发布一条更新的信息,然后把刚才发布的信息删了。rn 发现之前访问过的手机其中有几台仍然获取的还是之前已经删掉的更新信息。我检查过数据库里已经没有了这条信息。而且手机所有数据都清除了。依然还是访问到一条已经不存在信息。请问这是什么原因啊?
请大侠们帮忙看看?
具体的情况如下,一台sun-E450的一个/data文件系统不能mount上:rn1.# mount /datarn mount: the state of /dev/dsk/c0t3d0s1 is not okayrn and it was attempted to be mounted read/writern mount: Please run fsck and try againrn2.fsck -y /dev/rdsk/c0t3d0s1 时rn** Phase 3 - Check Connectivityrnfsck: warning: the following command (process 26100) was terminated by signal 11 and dumped corernfsck -F ufs -y /dev/rdsk/c0t3d0s1 rn就终止了!rn3.fsck -y -o b=32 /dev/rdks/c0t3d0s1rn** Phase 3 - Check Connectivityrnfsck: warning: the following command (process 26890) was terminated by signal 1ernfsck -F ufs -y -o b=1284912 /dev/rdsk/c0t3d0s1rn请大侠帮忙!
请大侠们 帮忙看看
我的CheckData.js文件怎么不起作用,什么也验证不了。rnrnfunction checkUserNick(s) rn var ma = ["用户名(2-8位)!","姓名只能为中文!"];rn if(!limitLen(s,2,8))rn showInfo("usrNick",ma[0]);rn return false;rn rn if(!hasChineseChar(s))rn showInfo("usrNick",ma[1]);rn return false;rn rn showInfo("usrNick");rn return true;rn rn function CheckForm()rn var chk=true rn var s = document.getElementById("repwdInput").value;rn if (!checkPwd2(s))return false;rn rn var s = document.getElementById("nickname").value;rn if (!checkUserNick(s))return false; rn rnfunction isMobile(_str)rnrn return /^00,11(3|5)[0-9]9$/.mobile(_str);rn,
大侠们请帮忙看看
public Teacher(string name) : this(name, 2, 5000) rn这个this是啥意思?
不同的方法
[b]问题:[/b]ini文件读写字符串时,如果遇到多行字符串,写入到文件后,重新读回来时发现只有第一行。rn[b]解决方法:[/b]在写入第二行时,换成其他标示符,然后写在同一行,读回来时再转成换行符。rn[code=c]rn//写入rn strTemp = m_sSerialNumText;rn CString sOld("\r\n");rn CString sNew("!newline!");rn strTemp.Replace(sOld, sNew);rn ::WritePrivateProfileString(_T("OtherSetting"),_T("SerialNumberText"),strTemp,strFileName);rnrn//读取rn GetPrivateProfileString(_T("Setting"),_T("Text"),_T("test"),strTemp,MAX_LENGTH,strFileName);rn m_sSerialNumText = strTemp;rn CString sNew("\r\n");rn CString sOld("!newline!");rn m_sSerialNumText.Replace(sOld, sNew);rn[/code]rn[b]问:[/b]有无其他更简单的方法。
strcmp在不同系统/编译器下的结果不同
在MOOC里C语言程序设计(翁恺)10.2节第三个视频中,代码: #include #include int main(int argc,char const *argv[]) { char a[]="abc"; char b[]="abc "; printf("strcmp=%d\n",strcmp(a,b)); printf("A-a=%d\n",'A'-
new Date()不同日期格式结果不同
不同的日期格式new Date()时得到的具体时间有差异var date1 = '12/04/2017 00:00:00' var time1 = new Date(date1) console.log(time1) //Mon Dec 04 2017 00:00:00 GMT+0800 (中国标准时间) var date2 = '12/04/2017' var time2 = new Date(
ko.mapping.fromJS不同参数导致的不同结果
page.VM.JobClass = ko.mapping.fromJS(jobClassX);此种用法必须在ko.applyBindings(page.VM);代码之前才能再页面中正确显示,如果在ko.applyBindings(page.VM)这行代码的后面,则页面中显示不出值 但是以下代码:page.VM.JobClass = ko.mapping.fromJS(jobClassX, {},
不同的函数定义方式,new出不同的结果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body></body> <!--不同的函数定义方式,new出不同的结果--> <script> function person() { this.name = 'd1';
正则表达式在不同IE中出来结果不同
目的:判断字符串至少10位且包含大小写、数字rn把RegularExpressionValidator的ValidationExpression设置为rn^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[A-Za-z0-9]9,$rn在IE6,IE7,IE8中出来的效果不同
同一个程序,怎么在不同的路径下结果不同?
我将一套论坛的源代码安装到两个不同的路径下,一个是c:\interpub\wwwroot\club,另一个是d:\myweb\club,又分别建立了两个虚拟目录,得到的结果不同,前一个页面可以正常运行,后一个却出错。趣味这是跟哪个配置文件有关?
变量设置不同~~结果不同~~指针问题~~
源程序里对member的设置是普通结构变量,本人将Family member改成Family *member,对应的将&member改成了member,更改之后能正常封装,但是运行之后进行几次输入就强制关闭程序了。想请教大侠这是为什么。源程序在下面[url=http://my.oschina.net/u/1408882/blog/185409][/url]rn更改之后的程序如下[code=c]#includern#includern#includern#includern#includern#define NAME_MAX 20rnstructrnrn char *filename;rn FILE *pfile;rnglobal="E:\\myfile.bin",NULL;rnstruct Daternrn int day;rn int month;rn int year;rn;rntypedef struct familyrnrn struct Date dob;rn char name[NAME_MAX];rn char pa_name[NAME_MAX];rn char ma_name[NAME_MAX];rnFamily;rnbool get_person(Family *pfamily);rnvoid getname(char *name);rnvoid show_person_data(void);rnvoid get_parent_dob(Family *pfamily);rnint main(void)rnrn Family *member;rn if(!(global.pfile=fopen(global.filename,"wb")))rn rn printf("\nUnable to open %s for writing.\n",global.filename);rn exit(1);rn rn while(get_person(member))rn fwrite(member,sizeof(member),1,global.pfile);rn fclose(global.pfile);rn show_person_data();rn if(remove(global.filename))rn printf("\nUnable to delete %s.\n",global.filename);rn elsern printf("\nDeleted %s OK.\n",global.filename);rn return 0;rnrnbool get_person(Family *temp)rnrn static char more='\0';rn printf("\nDo you want to enter details of a%s person(Y or N)?",rn more!='\0'?"nother":"");rn scanf(" %c",&more);rn if(tolower(more)=='n')rn return false;rn printf("\nEnter the name of the person:");rn getname(temp->name);rn printf("\nEnter %s's date of birth (day month year);",temp->name);rn scanf("%d %d %d",&temp->dob.day,&temp->dob.month,&temp->dob.year);rn printf("\nWho is %s's father?",temp->name);rn getname(temp->pa_name);rn printf("\nWho is %s's mother?",temp->name);rn getname(temp->ma_name);rn return true;rnrnvoid getname(char *name)rnrn fflush(stdin);rn fgets(name,NAME_MAX,stdin);rn int len=strlen(name);rn if(name[len-1]=='\n')rn name[len-1]='\0';rnrnvoid show_person_data(void)rnrn Family member;rn fpos_t current=0;rn if(!(global.pfile=fopen(global.filename,"rb")))rn rn printf("\nUnable to open %s for reading.\n",global.filename);rn exit(1);rn rn while(fread(&member,sizeof member,1,global.pfile))rn rn fgetpos(global.pfile,&current);rn printf("\n\n%s's father is %s,and mother is %s",rn member.name,member.pa_name,member.ma_name);rn get_parent_dob(&member);rn fsetpos(global.pfile,&current);rn rn fclose(global.pfile);rnrnvoid get_parent_dob(Family *pmember)rnrn Family relative;rn int num_found=0;rn rewind(global.pfile);rn while(fread(&relative,sizeof(Family),1,global.pfile))rn rn if(strcmp(pmember->pa_name,relative.name)==0)rn rn printf("\nPa was born on %d/%d/%d",rn relative.dob.day,relative.dob.month,relative.dob.year);rn if(++num_found==2)rn return;rn rn elsern if(strcmp(pmember->ma_name,relative.name)==0)rn rn printf("\nMa was born on %d/%d/%d.",rn relative.dob.day,relative.dob.month,relative.dob.year);rn if(++num_found==2)rn return;rn rn rnrn[/code]
iframe包含文件不同,结果不同的问题
我的本地服务器是win2003+iis6,用asp开发,某个asp页面中有个iframe,语句如下:rnrn在我本地服务器上可以正常显示出dorder4.asp的内容,可是传到互联网服务器上后发现dorder4.asp页面不能显示出来了,文件是绝对存在的,但是我把dorder4.asp的内容另存到一个html文件中,调用语句换成,本地服务器和网上服务器就都能正常显示了,怎么回事呢?
不同的系统运行相同的代码,结果不同
相同的代码在不同的系统打印不同的结果,rn在windows xp下运行打印“bbb”字符串;在linux中运行打印“aaa”字符串。rn代码如下,求解释rnrn[code=Java]rnpackage pkg15;rnrnimport org.eclipse.swt.SWT;rnimport org.eclipse.swt.layout.FillLayout;rnimport org.eclipse.swt.widgets.Display;rnimport org.eclipse.swt.widgets.Shell;rnimport org.eclipse.swt.widgets.Text;rnrnpublic class treeTest rnrn public static void main(String[] args) rn Display display = new Display();rn Shell shell = new Shell(display);rn shell.setText("Tree Test");rn shell.setSize(300, 300);rn shell.setLayout(new FillLayout());rnrn Text text = new Text(shell, SWT.BOLD);rn text.setText("");rn String string = text.getText();rn System.out.println(string);rnrn if (string != "") rn System.out.println("aaa");rn else rn System.out.println("bbb");rn rnrn shell.open();rn while (!shell.isDisposed()) rn if (!display.readAndDispatch())rn display.sleep();rn rn display.dispose();rnrn rnrnrnrnrn[/code]
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池