科学计算分析软件Scilab+Octave推荐!!!!!!!!

1.Scilab

Home Page | www.scilab.org

其实本人对Matlab是最喜欢的,但是,可能有一些正版情节,没办法,谁不想自己的电脑上全是“正版”软件(当然包括Windows系统),可惜,开发公司必须要运营,得要钱,所以,一些高质量软件收费也能接受(不过还是期望都有Education学生版).

/* No.20210909 SCI.LAB */
clear;
close;
clc;

C1 = 3.742*10^-16;
C2 = 1.4388*10^-2;

deff('[z]=f(x,y)','z=C2/(x*log(1+C1/(y*x^5)))');

Tusef = 800:50:1200;


/*
A = rand(10,10);
B = sprand(100,100,0.1);
savematfile('test_matfile_org.mat','A','B','-v6');
*/


loadmatfile('test_matfile_org.mat');

loadmatfile('test_matfile.mat');

Deviation = zeros(1,1667);
TpUsel = 1000;



loadmatfile('Averagespectru\T'+string(TpUsel)+'.mat');
loadmatfile('Averagespectru\K.mat');
loadmatfile('Averagespectru\B.mat');


for i=1:1667
    Isele = (SpecAve(i)-Bvar(i))/Kvar(i);
    Deviation(i) = abs(f(Wavrandom(i),Isele)-273.15 - TpUsel);
end

figure();
plot(Wavrandom,Deviation);


UnitDevi = zeros(1,1667);
for i=1:1667
    IseleFont = (SpecAve(i)-Bvar(i))/Kvar(i);
    IseleBack = (SpecAve(i)+1-Bvar(i))/Kvar(i);
    UnitDevi(i) = abs(f(Wavrandom(i),IseleBack) - f(Wavrandom(i),IseleFont));
end

figure();
plot(Wavrandom,UnitDevi);



Scilab相较于Matlab拥有自己独特的一些“语法特性”,比如函数的定义,但同时拥有绝大多数(可以说是)相同的语法特性,因此,对于熟用Matlab的人来说,上手是极其快速的,不过网上的可供查询的参考相对较少,这里,只是试一试,上面的代码是Matlab上移植下来的,总体来说变化不是很大,有趣,o(*^@^*)o.

2.Octave

GNU Octave

clear;
close;
clc;

C1 = 3.742*10^-16;
C2 = 1.4388*10^-2;

Temtr = @(Walen,Irradi)(C2/(Walen*log(1+C1/(Irradi*Walen^5))));

Tusef = 800:50:1200;


Wavrandom = load('Averagespectru\wavelength').WaveLeg;



Deviation = zeros(1,1667);
TpUsel = 1000;

Irri = load(['Averagespectru\T',num2str(TpUsel),'.mat']).SpecAve;


Kv = load('Averagespectru\K.mat').Kvar;
Bv = load('Averagespectru\B.mat').Bvar;

for i=1:1667
    Isele = (Irri(i)-Bv(i))/Kv(i);
    Deviation(i) = abs(Temtr(Wavrandom(i),Isele)-273.15 - TpUsel);
end

figure();
plot(Wavrandom,Deviation);



UnitDevi = zeros(1,1667);
for i=1:1667
    IseleFont = (Irri(i)-Bv(i))/Kv(i);
    IseleBack = (Irri(i)+1-Bv(i))/Kv(i);
    UnitDevi(i) = abs(Temtr(Wavrandom(i),IseleBack) - Temtr(Wavrandom(i),IseleFont));
end

figure();
plot(Wavrandom,UnitDevi);

save('test_matfile.mat','Wavrandom','-v6');
Status = load('test_matfile.mat','Wavrandom');

Strtes = string(2000);

该软件完全支持直接运行.m文件,可以说是不想学习新式语法的人的福音,如果你有想法,比如想来点新潮的,这绝对是可以尝试的一个选择,免费的,谁不想试试呢?可以和Matlab形成强有力的配合(尽管我认为Matlab已经完全可以满足绝大多数的工作,ヾ(≧ ▽ ≦)ゝ).

当然,其中些许问题和注意事项需要在尝试中解决,动动手比空想要靠谱的多!

3.Thoughts recently

最近总是会时不时想起小时候的一些情景,可能是真的长大了(在长大,但是不想长大,内心有一种“无形的”在抵触长大的事实),世界变复杂了还是我们长大了?

#include <iostream>
#include <string.h>
#include <math.h>
#include <vector>

/* Test example as 7 6

A12C3D4E56
A1B2345C6D

*/
using namespace std;
#define MAX 1000
void DFS(string str,string st,int flag,vector<string> &record,int cnt)
{
    if(cnt==str.length())
    {
        record.push_back(st);
        return;
    }
    if(flag==1)
    {
	st.push_back(str[cnt]);
    }
    DFS(str,st,0,record,cnt+1);
    DFS(str,st,1,record,cnt+1);
}

int main()
{
    string str1,str2;
    cin >> str1;
    cin >> str2;

    vector<string> rec1;
    vector<string> rec2;
    string st1;
    string st2;

    DFS(str1,st1,0,rec1,0);
    DFS(str1,st1,1,rec1,0);


    for(int i=0;i<rec1.size();i++)
    {
        cout << rec1.at(i) << endl;
    }



    DFS(str2,st2,0,rec2,0);
    DFS(str2,st2,1,rec2,0);

    int MATPL = 0;

    for(int i=0;i<rec1.size();i++)
    {
        for(int j=0;j<rec2.size();j++)
        {
            if(rec1.at(i)==rec2.at(j))
            {
                int tp = rec1.at(i).length();
                MATPL = max(MATPL,tp);
            }
        }
    }

    cout << MATPL;
}

其实,熟练掌握的基础上,或许还需要一些思考时间加上些许外部参考,才能实现想要达成的目标——“解决问题”,但是,熟练掌握是基础,发挥往往是建立在夯实的基础之上的(再加上一点自信,Confidence).

人民对于建立一个强大的社会主义祖国的期待与憧憬._哔哩哔哩_bilibili

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注


皖ICP备2021003932号
召唤伊斯特瓦尔