从bash执行Matlab脚本

从bash执行Matlab脚本,bash,matlab,Bash,Matlab,我能够从终端执行以下操作: matlab -nojvm < span.m 请让我知道我做错了什么 matlab脚本如下所示,它读取一个文件(wallShearStress_Wallbooth.raw),其中包含6列和45288行(所有数字),用于测试目的,无论数字是多少 clear all clc wallShearStresswallsconstant=importdata("wallShearStress_wallBottom.raw"); ly=110;%64; %nz lx=4

我能够从终端执行以下操作:

matlab -nojvm < span.m
请让我知道我做错了什么

matlab脚本如下所示,它读取一个文件(wallShearStress_Wallbooth.raw),其中包含6列和45288行(所有数字),用于测试目的,无论数字是多少

clear all 
clc
wallShearStresswallsconstant=importdata("wallShearStress_wallBottom.raw");
ly=110;%64; %nz
lx=407;%239;%nx
ShearStress=zeros(lx,5);
%Uinf=15.894579;
Uinf=16.77;
i=1;
j=1;
k=1;

while i<lx+1
    while j<ly+1
        ShearStress(i,1)=wallShearStresswallsconstant(k,1);
        ShearStress(i,2)=wallShearStresswallsconstant(k,2);
        ShearStress(i,3)=wallShearStresswallsconstant(k,3);
        if wallShearStresswallsconstant(k,4) < 0
            ShearStress(i,4)=ShearStress(i,4)+1;
        else
            ShearStress(i,5)=ShearStress(i,5)-1;
        end
        j=j+1;
        k=k+1;
    end
    j=1;
    i=i+1;
end

SS = ShearStress;
SS(:,5) = SS(:,4)-SS(:,5);
SS(:,4) = SS(:,4)./SS(:,5);
plot(SS(:,1),SS(:,4))
SS = SS';

fileID = fopen('new.txt', 'w');
fprintf(fileID,'%f %f %f %f %f\n',SS);
全部清除
clc
Wallshear应力WallsConstant=输入数据(“Wallshear应力_wallbooth.raw”);
ly=110;%64; %新西兰
lx=407;%239;%nx
剪应力=零(lx,5);
%Uinf=15.894579;
Uinf=16.77;
i=1;
j=1;
k=1;

当i时,请使用以下代码:

importdata('wallShearStress_wallBottom.raw');
执行matlab脚本文件的常用bash命令如下:

matlab -nodisplay -nojvm -nosplash -nodesktop -r \
    "try, span, catch, exit(1), end, exit(0);"

其中
span
是您的
.m
文件名。

您能提供一个吗?我刚刚添加了脚本。谢谢这并没有解决问题。如果有帮助的话,我已经添加了matlab脚本。谢谢@加法器为什么使用双引号?应为
importdata('wallShearStress_wallBottom.raw')?这只是一种习惯,matlab可以同时使用两者,但这解决了从脚本执行matlab的问题。我不知道为什么bash脚本会在意matlab的使用。谢谢大家!@好的,我已经把它写在答案里了。如果有帮助,请接受我的回答。谢谢
importdata('wallShearStress_wallBottom.raw');
matlab -nodisplay -nojvm -nosplash -nodesktop -r \
    "try, span, catch, exit(1), end, exit(0);"