MATLAB:使用rdivide的错误;矩阵划分

时间:2012-02-28 17:07:49

标签: matlab

我引用了从不同程序生成的外部txt文件。它基本上可以在一定范围内为我计算音量。我必须根据日期对音量进行校正,并且需要考虑一个"膨胀因子。"

在命令窗口中,我可以执行non_pay / 2并获得我的答案,但是通过编辑器运行我的程序(请参阅%命令行),我得到mrdivide或rdivide错误。我不知道如何在命令窗口中运行具有相同用户输入值的函数并在编辑器中得到答案,我除以已定义的变量并收到错误。

建议?

%Imports the tin report data
tin = input('Enter Tin Report: ','s') ;
ref_tin = importdata(tin,' ',23);
ref = ref_tin.data;

rownum = input('Enter Row Number: ','s');

%Determines if a bulking factor is present or not
reply = input('Is there a bulking factor for this dredge area? (y/n): ', 's');
if strcmp(reply,'y')
    bulk_fctr = input('Enter Bulking Factor: ','s');
else
    bulk_fctr=1;
    disp('NO Bulking Factor')
end


%Imports conditional tin report data
[n,m] = size(ref);
cnd_tin = importdata(tin,' ',48+n);
cnd = cnd_tin.data;

%Imports tin to level data level: 52 ft
grd_tin = importdata(tin,' ',71+n*2);
grd = grd_tin.data;

%Imports tin to level data level: 53.5 ft
od_tin = importdata(tin,' ',75+n*3);
od = od_tin.data(1:n,:);

%Data to be written to production database
non_pay = round((ref(:,2)-cnd(:,2)));                  %yd^3
%non_pay2 = non_pay/bulk_fctr;
volume_removed = round((ref(:,1)-cnd(:,1))+non_pay);   %yd^3
%volume_removed2 = volume_removed./bulk_fctr;
pay_volume = round(volume_removed - non_pay);          %yd^3
area = round(ref(:,3));                                %ft^2
abv_grd = round(grd(:,1));                             %yd^3
pay_rmg = round(od(:,1));                              %yd^3

data = [volume_removed,non_pay,pay_volume,area,abv_grd,pay_rmg];

1 个答案:

答案 0 :(得分:1)

当你要求输入'Enter Bulking Factor'时,你得到一个字符串,因为你给它's'参数。把它拿出去你会得到一个值而不是一个char数组。

if strcmp(reply,'y')
    bulk_fctr = input('Enter Bulking Factor: ');
else
    bulk_fctr=1;
    disp('NO Bulking Factor')
end

编辑添加:您还应添加一些检查以确保输入有效。

isnumeric(bulk_fctr) && isscalar(bulk_fctr)