我有两个m file,A.m 和 B.m。A要用来给参数,B是function. A.m x=[a b c]; y={'desc1' 'desc2' 'desc3'}; Amax(x,y); B.m function Amat(x,y) dataset = xlsread('sale.xls'); x1=x'*x; xlswrite('result.xls',y); end 说明: 1. B file 会读入data,总共有10个变量,但我们只要取用a, b and c 3个即可。 2. A file 指定x(matrix with a, b and c)和y(char)做为变量的名称(for export)。 请问一下有人知道要如何在A给出x matrix传送到B吗?谢谢。
在B.m这个程序当中会先读入data,才会有变量a,b andc,然后才可以做矩阵运算X1。也就是说在A.m里面没有任何data,A.m只负责指定需要进入矩阵运算的变量。我要做的事情其实是在A.m当中指定多个矩阵,例如[a c]或是[a b c d e],然后进入B.m去做运算然后得到结果输出report。在A.m中指定x=[a b c]会得到错误讯息 "Cannot find an exact (case-sensitive) match for 'a'",若写成x='a b c'则不会有错误讯息,但是这样一来x就变成char,传入B.m还是char而不是变量,这样就无法做运算了。希望这次有把问题讲清楚QQ
还是看不懂 所以你直接把x当input进去会有什么问题?你B里面不就是用x去做矩阵运算?你的a b c是在A.m中算出或填入的一些已知矩阵?那就要看你在B.m中的x大矩阵到底跟a b c这些小矩阵什么关系吧 如果维度正确才是像你这样直接串起来另外 除非真的非不得已不然还是不要用eval 正常来说没有非得要用eval的情况
先谢过p大和n大热心指教~~@p大: a, b, c要在B.m当中才会从excel读进去。基本上A.m只是指定矩阵x要包含a,b,c而已。A.m本身没有任何其他资料或是变量。@n大:readcell也许是个好主意,只是不知道why我的matlab没有这功能(R2018a)。另外可否详述一下所谓"xls读取完处理成cell"是什么意思?是指储存成cell型态吗?