科学网

 找回密码
  注册
科学网 标签 qzone 相关日志

tag 标签: qzone

相关日志

阿镗谈《炎黄风情》(四篇)
byk0104 2013-9-25 23:59
阿镗谈《炎黄风情》(四篇) 创意小辩 阿 镗 台湾 《省交乐讯》1994年12月号 ( 一 ) 无中生有是创意,有中生有亦是创意,且是更难的创意。 有一个对“无情对”的小故事。话说清末民初,某日,一群门生给老师做寿,有人出了一副上联:“公门桃李争荣日”。良久,下联仍无着落。刚好一位留欧的门生赶到,说:“这有何难哉?”跟着随口而出:“法国荷兰此利时”。众人深思片刻,无不绝倒。 这个故事,笔者是在林以亮先生的散文集《更上一层楼》中读到。事隔多年,居然没忘记。 作曲上,写旋律近似出联,是无中生有;写对位近似对联,是有中生有。后者难于前者,应是不争之理。因为前者海阔天空,后者限制重重。前者全凭才气,后者必须才气加上功力。 ( 二 ) 古往今来,那一部音乐作品最有创意? 巴赫的《恰空舞曲》?贝多芬的《第九交响乐》?柏辽兹的《幻想交响曲乐》?瓦格纳的《尼伯龙根指环》套歌剧?德彪西的《影像》套曲?斯特拉文斯基的《春之祭》? 如果来个公民投票,相信以上每部作品,都有资格得到不少选票。 巴赫的《恰空舞曲》,以 D C B A 四个顽固低音,发展出一首千变万化,结构紧密,有如巍巍高山的旷世巨作。贝多芬的《第九交响乐》,首次打破交响乐的纯器乐传统,加进人声,唱出了超越时代,超越国界的人类最崇高心声,柏辽兹的《幻想交响乐》,离高贵典雅之经,叛纯音乐之道,以前所未有的大编制,表现文学意境,开创了浪漫派的一代乐风。瓦格纳的《尼伯龙根指环》,以无比丰富的想象力,把管弦乐、声乐、戏剧融铸一炉,独创出前无古人,表现力极强的音乐剧。德彪西的《影像》套曲,打破传统功能和声束缚,用全新的音乐语言,表现自然界繁富细微的色彩变化,开启了二十世纪的音乐之门。斯特拉文斯基的《春之祭》,用尖锐的音乐,复杂的节奏,表现原始世界的荒蛮、粗野,带出了反崇高,反唯美,反旋律的当代音乐潮流。 这一票,究竟要投给谁? 别的人我不知道。我自己这一票,一早就想好,要投给巴赫之“赋格的艺术”。 理由是:它用那幺简单的主题,写出了那么多首形态不同,节奏不同,音程不同, ” 性格 ” 不同的赋格曲,达到了音乐形式美和变化组合可能性的极限。它比前文提到的 ” 无情对 ” ,不知还要难上多少倍,复杂上多少倍!相信贝多芬和斯特拉文斯基如果复活,也不能不把“天下武功第一”的宝座,拱手让给巴赫。 ( 三 ) 中国作曲家鲍元恺先生,写了一组二十四首中国民歌管弦乐曲。笔者对这组作品相当推崇。它除了写得很美,在和声、配器、结构、曲式上均有可观的创意与成就之外,最令笔者佩服的是对位丰富,精致,经得起推敲。 例如《小白菜》,在五小节的主题之后,马上就是一段四度转位卡农: 又如《小河淌水》,主旋律在第三次出现时,低音声部是主题的“扩大”: 再如《走西口》,中段旋律加上八度卡农后,音响更丰厚,感人力量更强: 类似例子,多不胜举。 中国作曲家,有如此对位功力与才华者,并不多。中国民歌改编曲,论对位的丰富、巧妙,以笔者所知,到目前为止,尚未有其它作品比得过鲍先生这组作品。笔者本人曾为小提琴与钢琴改编过一组中国民歌。论旋律与素材之变化发展,笔者自认为不输给鲍先生。可是论到对位,则口服心服,甘拜下风。 ( 四 ) 音乐的创意,当然不限于对位。从内容到形式,从旋律到节奏,从和声到配器,凡是前人所无的,都是创意,都弥足珍贵。笔者独推对位为创意之首,是因为它所受的限制最多,难度最大;中国作曲家普遍最弱的一环,是对位;中国音乐作品甚多听起来单薄者,原因在缺乏及格的对位;离开了对位,“交响化”便是一句空话:没有对位,大型管弦乐团便没有存在必要。 不久前,笔者向某唱片公司主事人推荐鲍元恺先生的上述作品,答复是:“作品不错,但创意不够。”笔者当时无语,但心中不平。再三思量后,明知争辩无益,仍忍不住写此小文。希望借故引起更多同道朋友对“创意”的讨论,也希望看到更多充满创意的中国音乐作品。 《炎黄风情》好在哪里 阿 镗 台湾《省交乐讯》1996年1月号 十四年前,笔者拜在卢炎老师门下,学作曲,也学音乐欣赏与评论。 “某某作品好不好?”“好在哪里?”“差在哪里?”这是向卢老师问得最多的问题。 不要以为这些问题好答。试问一些名气很大,地位很高的人,多半只能含糊其词,模棱两可地耍太极,少有人如卢老师,敢一言断高下,两语判生死。 “勋伯格的《升华之夜》极好,好在深,厚。” “马勒的交响乐好,好在线条美而丰富。” “ XXX 的作品不成,太单薄,经不起听。” “ XXX 曲很差,完全没有对位功力。” “你这个地方理路不清,要重写。” …… 诸如此类的真言听多了,自己的品味和批评力自然也慢慢地高起来。 鲍元恺先生的《炎黄风情——中国民歌主题二十四首管弦乐曲》,笔者是一听钟情,断之为上佳之作。如果要选十部近代中国最优秀的管弦乐作品,此曲必在其中。假如不在其中,此评选必将遭受后人非议为“不公”,“不明”,“不内行”。 或问:“你凭什幺胆敢作此(背书)式评断?” 答曰:“凭直觉,凭经验,凭分析,凭曾指挥排演过其中数曲。” 直觉和经验虽然通常最接近真理,可是不能服人,还是要举例子,讲道理。 撇开意境、内涵、民族风格、是否好听等较为抽象的,形而上的标准不谈,我们评断一首管弦乐作品的优劣,公认的行家标准是:一、对位是否丰富而理路清楚?二、和声是否丰厚而色彩多变?三、配器是否高明?这一点通常是指能否恰如其分地使用每一种乐器,并把每一种乐器的效果发挥到极致。四、结构是否严密? 以这四个标准来衡量,《炎》曲均得分甚高。 对位方面,笔者已写过一篇《创意小辩》,论及《炎》曲这方面成就,此处不赘。 和声方面,可举《小河淌水》一曲为例。该曲把这首不知多少人唱过用过的简单旋律,配上丰富多变的和声,听起来简直可以媲美德彪西、拉威尔的一流管弦乐曲。如果把它与一些中国作曲家的同名改编曲互相对比着听,更是高下立判,容不得半点虚假。 配器方面,《炎》曲不单只把管弦乐原有的弦、木、铜三组乐器的特色都发挥得淋漓尽致,尤为难得的是,作曲者把几件很不“合群”的中国乐器三弦,板胡,笛子,以及打击乐器,都巧妙地溶进不同乐曲之中,造成既新奇又和谐的特殊效果。如《夫妻逗趣》中三弦的使用,《看秧歌》中短笛与打击乐器的使用等,都是佳例。 结构方面,《炎》曲的特长不在素材的扩张变化和前呼后应,而在把二十四首小曲,按地方风格分成六组,每组四曲,四曲之间,经过缜密思考安排,有快有慢,有刚有柔,自成一个起承转合的系统。 笔者曾选了《小白菜》,《猜调》,《走西口》,《杨柳青》四曲的弦乐四重奏版本,让台南家专弦乐团排练演出。这四曲不但越练越有味道,越听越好听,有很好的演出效果,而且作为训练材料,训练弦乐团的音色变化,敏捷反应,整体平衡感,也效果极好。 台湾省立交响乐团将在陈澄雄团长指挥下,于 1996 年 2 月 2 日,在台北国家音乐厅演出全场鲍元恺教授的《炎》曲。这不但对爱乐者是佳音,对我们这些作曲同行和作曲学生也是个好消息。不管个人口味如何,听听《炎》曲,最少可以让我们知道,溶汇中西,充满生命力的好作品是个什么样子。更希望《炎》曲的上演,能刺激我们为本土音乐,中国音乐多努力,多争气。 听《炎黄风情》小感 阿 镗 台湾联合报副刊1996年3月6日 记忆中,夏济安先生说过一句话:“一个天才诗人出现,所有理论之争,便属多余。” 二月二日,在国家音乐厅,欣赏陈澄雄先生指挥台湾省立交响乐团演出鲍元恺先生的《炎黄风情 ——— 二十一首中国风管弦乐曲》。边欣赏,边不由自主,想到夏先生这句名言,连带想起不久之前,在台北,一群作曲家与评论家之间发生的“公立乐团应否强行规定,每年演出百分之二十国人作品”之争。 企盼精彩的国人管弦乐作品出现,相信是人同此心。二十多年来,笔者几乎听遍能听得到的大陆、台湾、香港、海外中国作曲家作品,自己也写过多首管弦乐曲和一些乐评文字。论作品和注释的意境功力,动人心弦,恰到好处,“说人话不说鬼话”,以这一场居首。那种精彩,很难用文字来形容,详细分析又嫌累赘,只能写下当时涌出的零星意念: “金庸的小说、余秋雨的散文、鲍元恺的管弦乐曲 —— 五百年后,时人谈起我们这个时代,一定会首先想到这几个名字和他们的作品。与他们同代,何其幸运!” “黄自、冼星海、马思聪、江文也等的管弦乐曲,都是战场先锋,大厦基石,好像都是为鲍元恺这部作品鸣锣开道,铺沙垫土。” “佛教因有慧能、苏东坡而不再是外来宗教。管弦乐因有《炎黄风情》而不再是西乐。” …… 据闻省交的团员在演奏这部作品时,不但没有边奏边骂,反而是“从耳朵到嘴唇,从指尖到脚底,都像在喝 XO ”。听过陈澄雄先生指挥的音乐会多次,笔者敢说,只有这一场,他才完全达到“乐人合一”、“得意忘形”,有了自己独特的风格,可以去跟任何西方指挥名家较量武功。 一花独放,不是春天。如果台湾作曲家,能出几个鲍元恺;中国指挥家,能出几个陈澄雄,何愁没有乐团愿奏国人作品?何惧乐评家跟作曲家过不去?何须用立法来强逼冤家结亲? 我期盼,深切地期盼。 再谈《炎黄风情》好在哪里 ------ 兼评廖燃先生《美学思考》 阿 镗 台湾《省交乐讯》 1996 年 10 月 笔者曾先后写了 《 创意小辩 》 , 《 “炎黄风情”好在哪里 》 , 《 听“炎黄风情”小感 》 三篇短文,评论兼介绍鲍元恺教授的《中国民歌主题二十四首管弦乐曲》(即《炎黄风情》)。如不是忙于俗事,分身乏术,真想为自己写一长篇的《鲍元恺管弦乐作品研究》或是 《 论“炎黄风情”的和声、对位、配器 》 。说是“为自己”,并非客气话。因为从《炎》曲中,笔者学到很多在作曲课和作曲教科书上学不到的东西。如研究得更深入些,最大的得益者肯定是自己。有没有人情的成份?肯定有,但不多。笔者对郭芝苑先生的《钢琴小协奏曲》和陈培勋先生的管弦乐作品评价极高,认为是当代中国真正的经典之作。论雅俗共赏,鲍作更胜一畴,在郭、陈之上。可是,论孤高脱俗,深藏不露,百听不厌,不能不尊郭、陈之作在上,让鲍作屈居其下。笔者跟郭芝苑先生并不熟,陈培勋先生则连面都未见过,相信是我知道他而他不知道我。以此来证明本人写文章人情成份不多,应有公信力吧? 在《省交乐讯》 1996 年十月号上读到廖燃先生 《 炎黄风情引起的美学思考 》 一文,有些意见如鲠在喉,不吐不快,只好不顾某名家“一流头脑创作,二流头脑评论,三流头脑评评论”之告诫,把一些零星看法写出来,供有心人士参考,思考。 《炎黄风情》的好,笔者已分别从创意(即对位写作)、和声、配器、结构等方面谈过,此处不重复。以上四方面,虽然都属于可分析,可论证的形而下之范畴,但却是作曲上最难的“功力”部份。对此,连廖先生都不得不承认其中“一些精致的段落,显示出作曲家扎实的功底”。那就让我们来讨论形而上的部份——创作的心态否健康,路向是否正确,究竟有没有创意吧! 为积德而写 近代为何优秀的作曲家和作品那样少(相对于十七、八、九世纪)?一大原因,恐怕是当代作曲家中,很多人是为创新(如现代派诸公)、为比赛得奖(如一批年轻朋友)、为饭碗(如不少学院派中人)而写。像巴赫那样为赞美上帝而写,像贝多芬那样为抒发自己对人类的大爱而写,像浪漫派诸大师那样为表达自己内心的七情六欲而写的人,当今之世,少到近乎绝种了! 鲍元恺写《炎黄风情》,是为了什么?在拙文《惊喜之事一箩筐》中,笔者写过这样一段话:“从鲍先生的发言和私下聊天中,得知他写这组作品时,已把生死、名利、技术都抛到一边,唯一想到的是积德——让世人知道中华民族有这么美的民歌,让自己的良心有所安。” 这段话,其实并没有把“真相”全说出来。如果碰到能从作品本身判断作品之价值的人,“真相”说不说也无所谓。 感谢廖先生的文章,引我讲出“真相”: 原来,鲍元恺四十六岁时,他的两位作曲家同学施光南和屈文中,都在四十九岁的英年早逝。而他的父亲,恰好也是四十九岁去世。很自然,他开始担心自己是否过得了四十九岁这一大关。能做什么?唯一可做的,就是作曲。即使过不了关,最少也留下“天鹅之歌”。于是,他放下一切,全力投入《炎黄风情》的写作。期间所承受的压力之大,所作出的牺牲之多,绝非外人所能想象。正像司马迁写《史记》,曹雪芹写《红楼梦》一样的心情、处境,鲍元恺写下了《炎黄风情》! 廖先生在其大文中,把作曲者的写作动机,凭空想象成“希望冲出亚洲,走向世界”,“抗拒西方咄咄逼人的商品文化的侵略”,“为满足那些对东方文化感到好奇,却又嫌其粗俗,不够精致的洋人提供一种音乐速食产品”,那是把单纯的事情弄复杂,把想象当成真实了。至于把一位作曲家因想积德而写的一部作品,跟“九十年代中国的文化民族主义”扯上关系,那是离题万里,几乎要令人联想到甚有中国特色的“莫须有”罪,“想造反”罪,“反革命”罪了。 雅俗共赏 中西溶合之路 艺术作品千类万类,归纳起来,不外四类:一是俗赏雅不赏,如偏低俗的流行音乐。二是雅赏俗不赏,如古琴音乐。三是雅俗都不赏,如某些当代学院派作品。四是雅俗共赏,如《梁祝》协奏曲。 《炎黄风情》走的路,显然是雅俗共赏之路。这条中庸之路,已经被《三国演义》、《水浒传》、金庸武侠小说、齐白石、张大千的国书、舒伯特的歌曲、克莱斯勒的小提琴小品等证明了是一条大路而不是一条绝路。但不知为什幺,时至今日,在作曲上走此路的人似乎是少数派,不但在同行中常处孤立,连评论家也常常往这条路上丢石头。 廖先生说《炎》曲“以西洋形式包装士货,犹如给村姑戴上金发”,他担心“老外一定会笑纳吗?”我猜想,鲍元恺之所以用交响乐的形式而不用江南丝竹一类形式,纯粹只是如张昊先生在《中乐与西乐的婚嫁》一文中——真巧,它刊在与廖文同期的《省交乐讯》封面内页)所形容:“知道血缘近亲婚姻产儿多智缺体弱”,所以,“趁黄昏月夜结群去抢远方部落的少女成婚”。别人喜欢或不喜欢,那是他家的事,自己管不了,也不应该管,事实上也从来没管过。 《炎黄风情》走的路,明明是“东西风溶合”,可是,廖文却责问:“艺术家在创作时,为什幺非得执着‘不是东风压倒西风,就是西风压倒东风’这类与艺术无关的问题?”此问甚怪,不知向谁所问,也不知该由谁来回答。相信反问廖先生,他也回答不出来。 极有创意之作 什么叫创意?如何评断一部作品有没有创意? 在《创意小辩》一文中,笔者开宗明义地说:“无中生有是创意,有中生有亦是创意,且是更难的创意。” 第一个说“美人如花”的人,有没有创意?当然有。虽然“美人”是原先就有,“花”也是原先就有。可是,从来没有人用花来形容美人,他第一个这么用,就是了不起的创造。等到第二,第三个人都这么说,就没有创意了。那只是模仿。艺术贵在创新,模仿绝不是最有价值的艺术。其中分界,全在“独一无二”和“高难度”。 以此标准衡量《炎黄风情》有无创意,那就要先来看它是否“独一无二”和“高难度”。 假如只是如廖文所说的“绝大部分只是用管弦乐队演奏一遍(民歌的)原曲”,那不必怀疑,肯定没有创意。即使从来没有人用管弦乐队来演奏过这二十四首民歌,也不能算有创意。因为这太容易了,随便一个人都做得到。不知廖先生听《炎》曲时,除了听到完整的民歌旋律之外,有没有听到几乎每首都有丰富的,独一无二的低音线条和内声部?有没有听到几乎每一首都有独特的,恰如其分的乐器色彩?有没有留意到每一首之内都有独一无二的起、承、转、合安排?恰恰是这些东西,令众多作曲行家不能不服气,不能不肯定其极有创意且高难度。阿镗是二流作曲家,可是,手虽低眼却高,不是一流的东西绝看不上眼。要阿镗把三流的东西说成一流,恐怕总统下条纸都办不到。中央音乐学院前院长,学作曲出身的刘霖教授曾亲口对笔者说,他想写一篇研究《炎黄风情》配器的论文。最近,连芬兰的西贝柳斯交响乐团,都在世界各地多处演奏《炎》曲。一部没有创意的作品,要达到此境地,可能吗?假如廖先生听过《炎》曲而听不出以上几个方面高难度的“创意”,恐怕应加强一下耳朵训练。如果耳朵听到了,心眼却看不到,那宜请一位高人来开开心眼。心眼一开,说不定会发现另外一个更美丽的世界呢! 作曲有无创意,焦点其实不在用不用原始的民歌素材,而在于用得高明不高明。德沃夏克、柴可夫斯基在他们的交响乐作品中,都大量使用原始民歌素材,谁有资格,有根据批评他们的作品没有创意?二流作曲家阿镗,有本事源源不绝地写出像民歌、民乐一样的自创旋律,可是,对位功力不够,只好望“交响”而兴叹,创意免谈。“你用了原始的民歌,你没有创意”——这样的说法,就像批评社会杜甫的诗没有主语,不合文法;批评韩愈的文章不讲平仄,不合规矩一样,显然标准不对,调错了焦点。 廖文立论轻率,经不起推敲之处太多。例如,说《黄河协奏曲》是“用钢琴与管弦乐队演奏一遍现成的《黄河大合唱》便成就”;说“中国号称有七千年文明史,有五十六个民族,然而,几十年来我们耳熟能详的不外是《杨柳青》,《小放牛》,《小白菜》……等几首民歌,童谣”;说鲍元恺“以西方交响音乐的美学规范来衡量各种传统音乐的价值”;说“民族浪漫乐派”“以格里格与西贝柳斯为代表”,说“《炎黄风情》最大的缺点在于作品本身并没有开拓新的艺术观念”,说“在音乐发展过程中,需要不断的观念更新以赶上社会经济的发展”,等等。在一篇不算太长的文章,有这幺多或信口开河,或强加于人,或观点不妥之处,似乎不多见。限于篇幅,无法一一指出其偏差不妥何在。有兴趣者,不妨一起来讨论。 结 论 (一) 一部伟大作品的产生,绝对不是靠“观念更新”,而是靠作者感情的真诚、热烈、高贵, 写作技术的高超。构成一部作品成经成典的条件,绝对不需要包括“开拓新的艺术观念”。原因无他:观念太易变,太廉价;感情的真诚,热烈,高贵和写作技巧的高超太难得。这就是西贝柳斯说“世界上没有一座铜像是为评论家立的”的理由。 (二) 如德国大文豪歌德所说:“对《魔笛》剧本而言,称颂比责难它需要更多的文化素养。” 把此言移作对《炎黄风情》的评论也完全适合。这方面评论家其实有更大的天地可以做文章。当然,前提是首先要内行,要谦卑,连做梦都不要想比作者更伟大,更重要,更高明。 (三) 下笔千方而离题万里,炮弹飞弹满天而不知目标何在。这是脱离艺术实践,从事纯理论 研究者须引以为戒的职业性毛病。在吓人的美学大标题之下,通篇不知谈了哪一个具体的美学问题,提出了哪一种美学主张,指出了批评对象的哪一样违反了神圣的美学原则。如此文风,不宜提倡。 (四) 笔者与廖然先生素不相识,更无冤仇,希望是不打不相识,而不是以文结仇。本文如有过激得罪之处,先在此向廖先生叩个头,道声歉,日后有机会见到面,再补请吃饭或喝茶。
3690 次阅读|0 个评论
海南省政府国际奖学金,本土学子自惭形秽
热度 18 Oilpalm 2013-2-18 16:21
今天看到了报纸上有关海南省政府国际奖学金的新闻,不由得想起来自己作为班主任的班上很多来自海南本土学生每年申请奖学金时期盼的眼神,想起了今年有关国家研究生收费政策的出台,还有大学里太多为了研究生学费发愁的学生,真的很难理解。难道国外的孩子来这里读书就能说明什么问题吗?一起看看这所谓的国际奖学金吧: 海南省政府国际学生奖学金管理暂行办法 为推进我省高等教育国际化,加快我省国际学生教育发展步伐,更好地适应海南国际旅游岛建设需求,海南省政府特设立“海南省政府国际学生奖学金”(以下简称奖学金)。 申请人须拥有外国国籍、持有外国护照,对华友好,身体健康。(要是没钱上学最好先出国当个外国人哦) 省财政设立奖学金专项经费,用于奖励来我省本科高校攻读学士学位和硕、博士学位的优秀国际留学生。获取奖学金的国际学生称为奖学金生。奖学金包括:注册费、学费、基本教材费、综合保险费,其余费用自理。 本科生奖学金,资助期限一般为 4 学年(医学专业等为 5 学年)。 标准为 20000 元人民币 / 生 / 年。硕士研究生奖学金,资助期限为 3 学年。标准为 23000 元人民币 / 生 / 年。博士研究生奖学金,资助期限为 3 学年。标准为 25000 元人民币 / 生 / 年。自 2013 年起,每年资助 50 名奖学金生 。 看看我们自己的学生的待遇: 国务院常务会议日前部署完善研究生教育投入机制,决定建立健全研究生教育收费制度。从 2014 年秋季学期起,向所有纳入国家招生计划的新入学研究生收取学费。现阶段全日制学术学位研究生收费标准,原则上每年硕士生不超过 8000 元、博士生不超过 10000 元,全日制专业学位研究生以及已按规定实行收费政策的研究生暂执行原收费政策。 设立研究生国家奖学金,每年奖励 4.5 万名研究生。从 2014 年秋季学期起,将研究生普通奖学金调整为国家助学金, 每年资助标准博士生不低于 10000 元、硕士生不低于 6000 元;同时设立研究生学业奖学金。 加大研究生助教、助研和助管岗位津贴资助力度。提高国家助学贷款最高限额。落实和完善鼓励捐资助学的 优惠 政策。( 差距好大呀,不仅仅额度低,时间也只有一年 ) 另外也查了一下,好像还没有发现海南省政府有关国内学生奖学金的文件,不知道是有还是没有。 可怜的孩子们,这倒是如何解释呢? 元芳,你怎么看
10366 次阅读|19 个评论
[转载]在VS2008中联合使用Matlab编程的技巧一
grapeson 2013-1-9 20:56
在VS2008中联合使用Matlab编程的技巧一 在VS中使用Matlab来处理矩阵主要有两种方法,一种是直接是VS中编程打开Matlab引擎,输入Matlab语句,另外一种就是将Matlab的m.文件编译生成dll文件,在VS中调用该dll文件。 一、在VS中调用matlab生成的dll文件 该实例是基于VS2008和matlab2009a所实现的。 1、Matlab中的设置 首先在Matlab里面新建一个M文件,主要代码为: function =gray_model_test_sonar3(a) %function =gray_model_test_sonar3(a1,a2,a3,a4) %a= ; a1= ; B= ; B = double(B); F= ; C=B'*B; D=pinv(C);%求C的伪逆 D = double(D); F = double(F); E=D*B'*F; G=(a(1)-E(2)/E(1))*exp(-4*E(1))+E(2)/E(1); T=(a(1)-E(2)/E(1))*exp(-3*E(1))+E(2)/E(1); M=G-T; end 该段代码为使用灰色模型进行预测的基础代码,重点在于Matlab程序必须要包含着functiong和end之间。 将m文件保存为sonar3.m,保存在D:\test文件件中,然后在Matlab的command window中键入:cd D:\test,在Matlab主窗口中将当前路径改为D:\test。 然后设置matlab编译库,以便能够生成动态dll文件供VS调用,在Matlab主窗口中键入: mbuild -setup 会出现: Please choose your compiler for building standalone MATLAB applications: Would you like mbuild to locate installed compilers /n? 在这里我选择的n,得到显示: Select a compiler: Lcc-win32 C 2.4.1 Microsoft Visual C++ 6.0 Microsoft Visual C++ .NET 2003 Microsoft Visual C++ 2005 SP1 Microsoft Visual C++ 2008 Express Microsoft Visual C++ 2008 SP1 None Compiler: 输入6,回车 The default location for Microsoft Visual C++ 2008 SP1 compilers is C:\Program Files\Microsoft Visual Studio 9.0, but that directory does not exist on this machine. Use C:\Program Files\Microsoft Visual Studio 9.0 anyway /n? y Please verify your choices: Compiler: Microsoft Visual C++ 2008 SP1 Location: C:\Program Files\Microsoft Visual Studio 9.0 Are these correct /n? y **************************************************************************** Warning: Applications/components generated using Microsoft Visual Studio 2008 require that the Microsoft Visual Studio 2008 run-time libraries be available on the computer used for deployment. To redistribute your applications/components, be sure that the deployment machine has these run-time libraries. **************************************************************************** Trying to update options file: C:\Users\Vivian\AppData\Roaming\MathWorks\MATLAB\R2009a\compopts.bat From template: D:\PROGRA~1\MATLAB\R2009a\bin\win32\mbuildopts\msvc90compp.bat Done . . . 当出现如上说明,就代表编译器设置完成,接下来使用.m文件生成.dll文件 在Matlab中,.m文件生成.dll文件的指令如下: mcc -W cpplib:myadd -T link:lib add.m -C 其中,myadd是需要生成的dll的文件名,即生成的文件名为myadd.dll,add.m是指明通过哪个.m文件生成dll文件的,myadd和add可以不一样。输入时注意参数的大小写与空格。 键 入上述命令后,经过1到2分钟的编译,Matlab会在Test文件夹下生成9个新的文件,其 中,myadd.ctf,myadd.h,myadd.lib,myadd.dll是在VS中需要用到的文件。到此,Matlab中的函数已经成功生成一 个动态链接库,可供VS调用了。 2、VS2008中的设置 打开VS2008,新建一个MFC基于对话框的工程,按如下操作方式进行设置: 工具|选项|项目和解决方案|VC++,在右边的“显示以下内容的目录”中选择“包含文件",添加:D:\Programme Files\Matlab\R2009a\extern\include(根据Matlab的实际安装目录进行设置);再选择“库目录”,添加:D:\Programme Files\Matlab\R2009a\extern\lib\win32\microsoft(根据Matlab的实际安装目录进行设置)。该设置只需设置一次,对以后所有工程都有效。 针对某一项目进行的设置:(不同的项目每次都要进行设置) 将上述在Matlab中生成的四个文件myadd.ctf,myadd.h,myadd.lib,myadd.dll 拷贝到项目文件夹中,选择项目|属性|配置属性|链接器|输入,在右边的“附加依赖项目”中,添加“mclmcrrt.lib myadd.lib”,其中myadd.lib即为Matlab生成的lib文件。 3、基本设置完成后即可进入编码 首先,必须将myadd.h包含进来,即在cpp文件的最前面部分添加#include "myadd.h",在该头文件中主要包含三个内容,是dll里面的一些函数的函数名,分别为: extern LIB_sonar3_C_API bool MW_CALL_CONV sonar3Initialize(void); //初始化函数,在调用matlab函数前必须使用 extern LIB_sonar3_C_API void MW_CALL_CONV sonar3Terminate(void); //结束函数,释放相关资源 extern LIB_sonar3_CPP_API void MW_CALL_CONV gray_model_test_sonar3(int nargout , mwArray M , const mwArray a); //直接使用的调用函数,第一个参数nargout指输出参数的个数,然后是输出参数,最后是输入参数。涉及到matlab中的一种数据类型mwArray,在VS中可以通过mwArray相应的成员函数将其中的变量提取出来,再进行相应的操作。 在VS中的代码如下: sonar3Initialize(); if (!sonar3Initialize()) { cout"初始化失败"endl; exit(1); } //在被调用的matlab程序中,一共有四个输入a1、a2、a3、a4,分别对应于声纳数据s1、s2、s4、s5 //声明四个1行1列的maArray变量 //声明四个1行1列的maArray变量,保存对应的四个数据 try { mwArray a(4,1,mxDOUBLE_CLASS); a(1,1)=s1; a(2,1)=s2; a(3,1)=s4; a(4,1)=s5; /*这种参数设置出现问题,输出结果恒为0,原因暂时不明 mwArray a1(1,1,mxUINT32_CLASS); a1.SetData(s1,1); mwArray a2(1,1,mxUINT32_CLASS); a2.SetData(s2,1); mwArray a3(1,1,mxUINT32_CLASS); a3.SetData(s4,1); mwArray a4(1,1,mxUINT32_CLASS); a4.SetData(s5,1); */ //声明一个y用于保存输出结果 mwArray y(1,1,mxUINT32_CLASS); //调用函数 gray_model_test_sonar3(1,y,a1,a2,a3,a4); //结果保存在y中,现在将y中的结果提取出来,保存到M中 y.GetData(M,1); cout"对于Sonar3的预测数据为:"Mendl; } //出现异常时的处理代码 catch(mwException e) { str.Format(_T("%s"),e.what()); cout"初始化失败123"endl; } sonar3Terminate(); 4、程序运行中的各种问题 (1) Microsoft C++ 异常: 内存位置 0x042cfbe8 处的 CFileException。 内存泄漏问题: 文件IO是经常出现异常的地方,你应该在进行IO操作的时候加入 TRY { IO操作 } CATCH(CFileException,e) //该代码是必须的 { 出现异常时的处理代码 } END_CATCH (2)当存在两个矩阵相乘时报错 : ??? Error using == mtimes Integer data types are not fully supported for this operation. At least one operand must be a scalar. 这时需要在matlab中奖待乘的矩阵进行强制转换为double型,如B=double(B),但如此转换可能出现内存不足的问题,完美解决方法还没有找到。 (3) matrix is singular to working precision 矩阵出现奇异,无法求逆,此时在matlab中使用pinv命令代替inv命令,pinv为求伪逆
4096 次阅读|0 个评论
喜乐感恩之心常在,便是不以物喜不以己悲
xuleiatp 2012-11-4 12:55
喜乐感恩之心常在,便是不以物喜不以己悲。 (之前写过 一篇“不以物喜,不以己悲”的博文。今天算是继续讨论。) 因为,真正的喜悦来自于世界的奇妙,来自于生命的神圣,道德的高尚,爱的伟大。 所以,我们要“不以物喜不以己悲”。正因如此我们不能不要低头寻芝麻,随手扔西瓜。说一叶障目不见泰山,也是这般道理,万不可执着于一花一叶的色泽形状,却错过了欣赏巍峨泰山之势。 有了生命,看到了这世界,便应从此怀了喜乐感恩之心,喜乐感恩之心应尽量不受他物搅扰,若非如此, 那不仅是对自己的刻薄更是一种大不敬。
3380 次阅读|0 个评论
成长的另一种解释
jttto 2012-11-2 22:02
成长的另一种解释 走在人潮涌动的十字街头,我已经忘记了本该有的感受,只是在想,怎样才能脱颖而出! 成长,如果你想,请一定要接受挑战!因为成长的另外一种解释就是承认自己的无力,然后开始想办法改进!
1373 次阅读|0 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-26 02:02

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部