做家庭作业,这是一个给我带来麻烦的问题。问题是:
a)创建一个名为nmoles的函数M文件,需要两个向量输入 - 质量和分子量 - 并返回相应的数字 痣。因为您提供矢量输入,所以它是必要的 在计算中使用meshgrid函数。
b)测试下表所示化合物的功能 质量从1到10克:
在我的函数文件中,我得到了:
function [ n ] = nmoles(m, MW)
%% Finds number of moles
m = (1:10); %% mass range
MW = [78.115 46.07 102.3]; %% Values from the table
n=m/MW; %%formula provided by the textbook
我的主文件只有:
nmoles(m,MW)
我收到错误:“使用/ Matrix尺寸时出错必须同意” 另外:nmoles误差(第10行)n = m / MW;
我对MATLAB缺乏经验并且仍在学习语法,但我认为我的公式不正确并且我使用了错误的符号来划分,但我不确定如何纠正这一点。另外,我如何将meshgrid函数合并到我的anwser中?
答案 0 :(得分:1)
以下是您的功能应该如何:
function [ n ] = nmoles(m, MW)
% Finds number of moles
[mv,MWv] = meshgrid(m, MW); % extends m and MW to match all combinations.
n = mv./MWv; %formula provided by the textbook
end
然后你的主要脚本应该是:
m = 1:10; % mass range
MW = [78.115 46.07 102.3]; % Values from the table
nmoles(m, MW)
你有3个错误:
m
和MW
作为该函数的输入,则不要在其中定义它们。meshgrid
。.
或/
之前加*
。在MATLAB中,默认情况下一切都是矩阵,因此默认情况下,此操作被解释为矩阵multiplication和division。如果您想要regular division或multiplication,请使用.*
和./
。对于权力(^
和.^
)也是如此。