matlab的点乘中 为什么x=t点乘sint?直接乘以不行吗

扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
如何用Matlab绘制函数y=tsin2t在t=[0,2pi]内的曲线图
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
t=0:pi/50:2 (中间的pi/50是步长,如果不合适,可自行更改)y=t*sin(2*t);plot(t,y)
我试了,根本不行。第一步没问题,第二步输入那个函数之后,就错误。不信,你自己在matlab 上试一下
我弄错了,这个是数组运算应该用点乘
t=0:pi/50:2*
y=t.*sin(2.*t);
为您推荐:
扫描下载二维码扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
matlab中,想对矩阵X中的每一个元素x(i,j)求f(x(i,j)),生成新矩阵Y,应该怎么办?这个问题也许有人问过了,但是我实在找不到,就来问了……现有一个很大的矩阵X,一个很复杂的函数f(x).我想对X中的每一个元素x(i,j)求f(x(i,j)),应该怎么写?由于矩阵较大,且f(x)非常复杂,所以我不想用for循环;由于f(x)是黑箱状态,所以没法改动为点乘点除之类.
dfvgtyj00455
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
每次取X(i,j)再计算f(x),这个好像没捷径了吧,如果想减少计算数据量,可以对矩阵X处理,采用稀疏矩阵存储,a=sparse(x);[m,n]=size(a);fx=zeros(m,n);for i=1:mfor j=1:nfx(i,j)=f(a(i,j));endend
为您推荐:
其他类似问题
把“非常复杂”的f(x)贴出来,问题可迎刃而解。f(x)调用了ANSYS,所以没法改动……再没法改动总有个表达式或对应之类的吧,是不?囧,想把程序贴上来,结果超字数了~其实f(x)也就40行,问题是里面调用了ANSYS宏文件(大约70行),那个倒是也可以改,但是那个不是matlab了,而且只是建个模,计算也是软件自己算的。不知道f(x),也就没法写code。
但是有一点,matlab的长处就是矩...
再没法改动总有个表达式或对应之类的吧,是不?
囧,想把程序贴上来,结果超字数了~其实f(x)也就40行,问题是里面调用了ANSYS宏文件(大约70行),那个倒是也可以改,但是那个不是matlab了,而且只是建个模,计算也是软件自己算的。
不知道f(x),也就没法写code。
但是有一点,matlab的长处就是矩阵是其运算的基本单元,任何函数都可以矩阵为输入项。
w=A%将A(i,j,k)付值给φ(x,y,z) 首先确定xyz的范围,比如说就可以像平时一样定义函数了。 看不懂问题? 定义函数用function [输出
扫描下载二维码> 博客详情
摘要: 由于亲爱的学校给我们开了数学建模,笔者决定要在9.16之前完成MATLAB官方文档 getstarted,恩就是这样。。这是第一部分
&&&&MATLAB这个语言灰常牛B大家都知道,封装性良好且支持混合编程。比如...
&&&&OK,现在我们打开MATLAB
&&&&Hint: 官方帮助文档很给力!
&&&&在MATLAB程序中,由于矩阵运算的重要,我们可以理解为“一切变量皆向量”。
&&&&学习语言时,许多时候我们都从Hello World开始,在MATLAB中,这一个程序是这样的:
disp('Hello&World!');
& & 恩,确实只需要一行...
&&&&按你胃(Anyway),我们还可以给一个变量赋值
&&&&还可以让给一个变量赋值为向量
a&=&[1&2&3&4]
& & 然后,再试一下矩阵
a&=&[1&2&3;&4&5&6;&7&8&10]
&&&&Hint:试一试这些命令,看看程序返回的是什么,再在末尾加上分号(;)试一试!
&&&&工作区:当前在工作区(workspace)可用的变量叫做Workspace Varibles。比如,我们运行这两条命令:
A&=&magic(4);
B&=&rand(3,5,2);
& & 然后,你就可以在workspace看到它们
&&&&另外,我们可以随时使用whos命令来查看当前变量的属性
&&&&还可以这样。。
&&&&&MATLAB运算符:在程序中的加减乘除还是用我们熟悉的+、-、*、/,不过在MATLAB中还有一个“左除”,即\,有A\B = B/A。
&&&&矩阵乘除运算直接可以用(*/\)这三个符号运算,另外还有点乘(.*)符号表示对应位置相乘,点除、点方(.^n)同理。
&&&&不妨自己试一下 B = A.*A
&&&&输出格式:试一试输入format long命令,再输入C = B * inv(B)。再把long换成short再试一下
&&&&级联:即把两个矩阵连接起来,一般有两种方式——横向(C = [A,B])和纵向(C = [A;B])两种方式
&&&&注释:打一个百分号,在这一行后面写注释即可
&&&&复数:虚部用i或j表示即可,如:
c&=&[3+4i,&4+3j;&-i,&10j]
&&&&矩阵元素的索引:比如A是一个4*4的矩阵,MATLAB提供了两种索引方法:一是A(行,列),如A(4,2)表示A中第4行第2列的元素;二是A(index),其中index是按列向下数(和C/C++的按行从左往右刚好相反),如A(3)表示第一列第三行的元素,A(8)表示第4行第2列的元素
&&&&Hint:试一试越界的index(如A(17)和A(5,3)),会有什么后果?
&&&&那么要同时取几行或几列,要怎么做呢?
&&&&这时可以使用冒号:如A(1:3,2)就是矩阵A的1-3行第二列的元素;A(3,:)是矩阵A第三行
&&&&冒号还可以这样用:
start:step:end
&&&&如D = 0:10:100运行后,D = [0,10,20,30,40,50,60,70,80,90,100]
&&&&保存变量到文件:save命令,以.mat为后缀即可,如 save myfile.mat
&&&&从文件载入变量:load命令,如load myfile.mat
&&&&如何清空:clear命令清空变量,clc命令清空执行过的命令
& & 字符串:MATLAB中的字符串操作和C/C++中类似(就连字符串处理函数的取名也和C/C++差不多。。),这里推荐这篇博文:
&&&&和普通变量一样,字符串也是“向量”,因此也可以级联。具体命令为:比如此时b = 'tencent',执行a = ['str',b];a就变为'strtencent'。
c&=&(f-32)/1.8;
tempText&=&['Temperature&is&',num2str(c),'C']
&&&&其中num2str函数可以把数字转化成字符串形式。
&&&&接下来,我们来看看如何绘制2D和3D的图像吧!
&&&&2-D作图利器--plot函数: 先来看个例子,如何绘制y=sin(x)的图像
x&=&0:pi/100:2*
y&=&sin(x);
&&&&这时候就可以看到图像了。然后可以加上这些命令美化一下
xlabel('x')
ylabel('sin(x)')
title('Plot&of&the&Sine&Function')
&&&&Hint:试一下将plot(x,y)改为plot(x,y,'r--')绘制出的图像!
&&&&如果要在一张图上绘制多条曲线,则可以用hold on命令
x&=&0:pi/100:2*
y&=&sin(x);
hold&on&%继续在这个Figure上作图
z&=&cos(x);
plot(x,z,'r--')
xlabel('x')
title('Plot&of&the&Sine&and&Cosine&Function')
legend('sin','cos')
&&&&3-D作图利器--surf/mesh函数:
&&&&3D图像可以用meshgrid函数做一个平面,再根据函数方程作图;也可以用参数方程作图。
%做&z=x*e^(-x^2-y^2)&的图像
[X,Y]&=&meshgrid(-2:.2:2);&&&&%构造平面
Z&=&X&.*&exp(-X.^2&-&Y.^2);&&&%构造图形
subplot(2,1,1);&surf(X,Y,Z);&title('surf');&&%使用surf作图
subplot(2,1,2);&mesh(X,Y,Z);&title('mesh');&&%使用mesh作图
&&&&上边是用surf函数做的图,下面是用mesh函数做的图,喜欢哪个就用那个啦~
&&&&Hint:查阅一下MATLAB官方文档的subplot函数!
&&&&然后我们用参数方程做个图:
t&=&0:pi/10:2*
[X,Y,Z]&=&cylinder(4*cos(t));&&&&%即p=4cost
subplot(2,2,1);&mesh(X);&title('X');
subplot(2,2,2);&mesh(Y);&title('Y');
subplot(2,2,3);&mesh(Z);&title('Z');
subplot(2,2,4);&mesh(X,Y,Z);&title('X,Y,Z');
MATLAB编程
&&&&在MATLAB中编辑文件(如果没有,自动创建.m文件):edit Calcmean
&&&&至于什么循环、条件分支语句,聪明的你肯定一看就能明白:
%Calcmean.m
%计算随机生成数的平均值
&&&&&&&&&&&&%清除工作区
nsamples&=&5;
npoints&=&50;&
while&k&=nsamples&&%循环
&&&&iterationString&=&['Iteration&#',int2str(k)];
&&&&disp(iterationString)
&&&&currentData&=&rand(npoints,1);
&&&&sampleMean(k)&=&mean(currentData)&&&&
&&&&k&=&k+1;
%如果去掉&k&=&k+1;&一句,并把while一行换为for&k&=&1:nsamples,得到的结果是一样的
overallMean&=&mean(sampleMean)
if&overallMean&&&.49
&&&&disp('Mean&is&less&than&expected');
elseif&overallMean&&&.51
&&&&disp('Mean&is&greater&than&expected');
&&&&disp('Mean&is&within&the&expected&range');
&&&&按下工具条里面绿色的“Run”,就可以运行它了!(PS:感觉跟Python一样一样的!)
&&&&Hint:查阅一下官方文档对mean函数的介绍!
&&&&Hint:官方文档快速查阅命令有doc和help,如
&&&&分别试一下吧!
&&&&不知不觉写了一下午,没想到我也能一口气写出3400字的博文,那么MATLAB Quick Start : Part I 就到这里吧!
&&&&参考文献:
&&&&[1]The MathWorks, Inc.&MATLAB(R) Primer . 2015(24) : 2-31.
人打赏支持
码字总数 29817
支付宝支付
微信扫码支付
打赏金额: ¥
已支付成功
打赏金额: ¥温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
乐于交友,乐于交往够意思的朋友,乐于交往所有乐于交往的朋友。
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(5953)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_081067',
blogTitle:'MATLAB中的点乘和点除问题',
blogAbstract:'\r\n&\r\n如:A=[1 2 3;4 5 6;7 8 9]\r\n&&&&&& B=[2 4 6;8 10 12;14 16 18]\r\nA*B= 60&&& 72&&& 84&&&&& &132&& 162&& 192&&&&& &204&& 252&& 300\r\nB/A=\r\nWarning: Matrix is singular to working precision. \r\nans =\r\n&& NaN&& NaN&& NaN&& NaN&& NaN&& NaN&& NaN&& NaN&& NaN\r\n%矩阵这样做是不行的!!!',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:2,
publishTime:0,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:1,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'乐于交友,乐于交往够意思的朋友,乐于交往所有乐于交往的朋友。',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}Matlab中的矩阵乘法与矩阵点乘(对应位相乘)
矩阵乘法要求左矩阵的行数与右矩阵的列数相等,即MxN维矩阵乘以NxM维矩阵
例:A=[1 1 1;2 2 2] &B=[3 3;4 4;5 5;]
MATLAB语句:A*B
矩阵点乘要求两矩阵维数相等,即MxN维矩阵乘以MxN维矩阵
例:A=[1 1 1;2 2 2] & B=[3 3 3;4 4 4]
MATLAB语句:A.*B
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 matlab 点乘 的文章

 

随机推荐