TDRSOD estimates the epoch state and surface-force coefficients of a low-Earth user satellite together with one or more Tracking and Data Relay Satellite (TDRS) vehicles from four-way range measurements. The packaged demonstration processes UARS plus TDRS-4 and TDRS-5 on 1 September 1999 using White Sands stations 161 and 162.The dynamical model, coordinate transformations, and variational-equation formulation follow Montenbruck and Gill, Satellite Orbits: Models, Methods and Applications (Springer, 2005). Time, polar motion, and nutation follow IERS Conventions; planetary positions come from JPL DE440; Earth orientation and space weather files are the CelesTrak EOP-All and SW-All products.Version 3.3.0 keeps the 3.2.2 estimation architecture (batch Gauss–Newton, four-way range, eight parameters per satellite) and updates the force model, gravity gradient, and iteration control. A typical run of the packaged case reduces the four-way range residuals to a mean of 0.02 m and an RMS of 1.91 m after four iterations.References:Montenbruck O., Gill E., Satellite Orbits: Models, Methods, and Applications, Springer, Heidelberg, corrected 3rd printing, 2005.Vallado D. A., Fundamentals of Astrodynamics and Applications, 4th ed., 2013.Petit G., Luzum B. (eds.), IERS Conventions (2010), IERS Technical Note No. 36.Knocke P. C., Ries J. C., Tapley B. D., Earth Radiation Pressure Effects on Satellites, AIAA/AAS Astrodynamics Conference, Minneapolis, 1988.Picone J. M. et al., NRLMSISE-00 empirical atmosphere, J. Geophys. Res., 2002.Tapley B. et al., GGM03C/GGM03S gravity models, CSR.JPL Planetary and Lunar Ephemerides DE440, https://ssd.jpl.nasa.gov/planets/eph_export.html CelesTrak Earth orientation: https://celestrak.org/SpaceData/EOP-All.txt CelesTrak space weather: https://celestrak.org/SpaceData/SW-All.txt IERS FES2004 ocean-tide coefficients, Conventions (2010) Chapter 6.
Please open Telegram to view this post
VIEW IN TELEGRAM
How to Use Terminal to Bring AI Coding Agents into MATLAB and Simulink
#YouTube
via MATLAB@YouTube (author: MATLAB)
#YouTube
via MATLAB@YouTube (author: MATLAB)
YouTube
How to Use Terminal to Bring AI Coding Agents into MATLAB and Simulink
Terminal brings an embedded system terminal into the MATLAB® desktop or Simulink® canvas. Use it to run system commands, Git workflows, Docker workflows, and command-line AI coding agents without leaving your engineering environment. Work in a complete terminal…
(More information is available at http://www.libprima.net ; in case of questions or requests, open an issue at the GitHub repository of PRIMA)PRIMA is a package for solving general nonlinear optimization problems without requiring derivatives. It is the successor of PDFO.PRIMA provides a MATLAB functions prima, which can automatically identify the type of your problem and then solve it by one of Powell's methods, namely COBYLA, UOBYQA, NEWUOA, BOBYQA, and LINCOA.The prima function is designed to be compatible with the fmincon function available in the Optimization Toolbox of MATLAB. You can call prima in the same way as calling fmincon:x = prima(fun, x0)x = prima(fun, x0, A, b)x = prima(fun, x0, A, b, Aeq, beq)x = prima(fun, x0, A, b, Aeq, beq, lb, ub)x = prima(fun, x0, A, b, Aeq, beq, lb, ub, nonlcon)x = prima(fun, x0, A, b, Aeq, beq, lb, ub, nonlcon, options)x = prima(problem) % PROBLEM is a structure defining the optimization problem[x, fval] = prima(___)[x, fval, exitflag, output] = prima(___)In addition, prima can be called in some flexible ways that are not supported by fmincon. If your problem can be solved by fmincon without specifying the derivatives, then it can probably be better solved by prima; if your problem cannot be solved by fmincon, then try prima.For the installation of PRIMA, see https://github.com/libprima/prima/blob/main/README_mat.md .If you need help with the setup of MEX, see https://www.mathworks.com/matlabcentral/fileexchange/127968-setup_mex .The "P" in the name stands for Powell, and "RIMA" is an acronym for "Reference Implementation with Modernization and Amelioration".PRIMA is dedicated to the late Professor M. J. D. Powell FRS (1936--2015).
Please open Telegram to view this post
VIEW IN TELEGRAM
2nd edition of Geomorphometry – Concepts, Software, Applications out now
via TopoToolbox (author: wschwanghart)
via TopoToolbox (author: wschwanghart)
TopoToolbox
2nd edition of Geomorphometry – Concepts, Software, Applications out now
The blue bible has been my faithful companion for all sorts of questions about concepts, algorithms and software in geomorphometry. With its release in 2009, it has been somewhat outdated, given th…
MATLAB library for elastic functional data analysisA MATLAB package for functional data analysis using the square root velocity framework which performs pair-wise and group-wise alignment as well as modeling using functional component analysisInstallationDownload zip or tar.gz of package or clone repositoryRun setup.m to setup paths and compile MEX functions NOTE: Armadillo c++ library required for bayesian code.ReferencesTucker, J. D. 2014, Functional Component Analysis and Regression using Elastic Methods. Ph.D. Thesis, Florida State University.Robinson, D. T. 2012, Function Data Analysis and Partial Shape Matching in the Square Root Velocity Framework. Ph.D. Thesis, Florida State University.Huang, W. 2014, Optimization Algorithms on Riemannian Manifolds with Applications. Ph.D. Thesis, Florida State University.Srivastava, A., Wu, W., Kurtek, S., Klassen, E. and Marron, J. S. (2011). Registration of Functional Data Using Fisher-Rao Metric. arXiv:1103.3817v2 [math.ST].Tucker, J. D., Wu, W. and Srivastava, A. (2013). Generative models for functional data using phase and amplitude separation. Computational Statistics and Data Analysis 61, 50-66.J. D. Tucker, W. Wu, and A. Srivastava, ``Phase-Amplitude Separation of Proteomics Data Using Extended Fisher-Rao Metric," Electronic Journal of Statistics, Vol 8, no. 2. pp 1724-1733, 2014.J. D. Tucker, W. Wu, and A. Srivastava, "Analysis of signals under compositional noise With applications to SONAR data," IEEE Journal of Oceanic Engineering, Vol 29, no. 2. pp 318-330, Apr 2014.Srivastava, A., Klassen, E., Joshi, S., Jermyn, I., (2011). Shape analysis of elastic curves in euclidean spaces. Pattern Analysis and Machine Intelligence, IEEE Transactions on 33 (7), 1415-1428.S. Kurtek, A. Srivastava, and W. Wu. Signal estimation under random time-warpings and nonlinear signal alignment. In Proceedings of Neural Information Processing Systems (NIPS), 2011.Wen Huang, Kyle A. Gallivan, Anuj Srivastava, Pierre-Antoine Absil. "Riemannian Optimization for Elastic Shape Analysis", Short version, The 21st International Symposium on Mathematical Theory of Networks and Systems (MTNS 2014).Xie, W., S. Kurtek, K. Bharath, and Y. Sun (2016). "A Geometric Approach to Visualization of Variability in Functional Data." Journal of the American Statistical Association in press: 1-34.Y. Lu, R. Herbei and S. Kurtek (2017). "Bayesian Registration of Functions with a Gaussian Process Prior." Journal of Computational and Graphical Statistics: in press: 1-34Lee, S. and S. Jung, 2017: Combined analysis of amplitude and phase variations in functional data. arXiv:1603.01775 [stat.ME], 1–21.J. D. Tucker, J. R. Lewis, and A. Srivastava, “Elastic Functional Principal Component Regression,” Statistical Analysis and Data Mining, vol. 12, no. 2, pp. 101-115, 2019.J. D. Tucker, J. R. Lewis, C. King, and S. Kurtek, “A Geometric Approach for Computing Tolerance Bounds for Elastic Functional Data,” Journal of Applied Statistics, 10.1080/02664763.2019.1645818, 2019.
---------
Please open Telegram to view this post
VIEW IN TELEGRAM
Actually, every researcher come to terms with his/her bibliometricperformance. There are many software to compute these indices, likePublish or Perish or Google Scholar. Anyway, these softwares require anadditional work like to identify the proper papers to exclude papers byauthors with the same name and surname. More over, Google Scholar is notefficient to list all the authors of a papers (it cuts the list), so somemetrics are inaccurate.So I decided to set-up this algorithm to compute these metrics without webdata-mining.Syntax: bibliometrics(C,Y,A) Inputs: C - an array with the number of Citations of published papers (mandatory). These data can be obtained using several databases as ISI, Researcher ID, Google Scholar, Scopus, Citeseeker,... Y - an array with the Years of publication of the papers (optional). Everybody know when an own paper was published... A - an array with the number of Authors of published papers. Everybody know the number of co-authors of an own paper... Outputs (if all vectors were given): - Descriptive statistics: ° Total number of papers ° Total number of citations ° Min, Max, Mode, Median and Mean citations per papers (with 95% confidence intervals) ° Variation Coefficient (normal and adjusted) ° Gini's Coefficient ° Years of activity, first and last year of publication ° Min, Max, Mode, Median and Mean papers per year (with 95% confidence intervals) ° Mean number of citations per year ° Min, Max, Mode, Median and Mean Authors per paper (with 95% confidence intervals) ° Citations per author - Bibliometrics indices ° Citations indices Hirsch's h-index with a and m parameters, delta-h Egghe's g-index, delta-g Jin's A-index Kosmulski's h2-index Zhang's e-index Sidiropoulos'es normalized h-Index ° Years weighted indices Sidiropoulos'es Contemporary h-Index (hc-index) Jin's Age weighted citation rate (AWCR) and AR-index Harzing's Age weighted citation rate (AWCR) and AR-index ° Authors weighted indices Batista's Individual h-index (hI-index) Harzing's Individual h-index (hI,norm-index) Schreiber's Multi-authored h-index (hm-index) ° Years and Authors weighted indices Jin's Age weighted citation rate (AWCR) and AR-index Harzing's Age weighted citation rate (AWCR) and AR-index Several plots Example: C=[12 8 1 0 5 3 0 0]; Y=[2004 2007 2008 2008 2008 2009 2009 2010]; A=[8 9 10 7 11 11 7 5]; bibliometrics(C,Y,A) Created by Giuseppe Cardillo giuseppe.cardillo-edta@poste.itTo cite this file, this would be an appropriate format:Cardillo G. (2010) Bibliometrics: the art of citations indiceshttp://www.mathworks.com/matlabcentral/fileexchange/28161
---------
Please open Telegram to view this post
VIEW IN TELEGRAM
Somewhere between the thalweg and the ridge – fractional relief as a new measure for slope position
via TopoToolbox (author: wschwanghart)
via TopoToolbox (author: wschwanghart)
TopoToolbox
Somewhere between the thalweg and the ridge – fractional relief as a new measure for slope position
There is a new paper out lead by Josh Roering about how shallow landslides are triggered by extreme precipitation during atmospheric rivers (Roering et al. 2026). The study investigates 700 landsli…
📡 MATLAB Central - File Exchange - rating:5.0 | File downloader/uploader with progress monitor
# HTTP Progress Barhttps://img.shields.io/github/v/release/ehennestad/http-progressbar-matlab?label=version">https://github.com/ehennestad/http-progressbar-matlab/actions/workflows/run-codespell.yml/badge.svg">Download and upload files over HTTP with a live progress display## DescriptionDownload files from the web and upload files to the web while showing live progress, using MATLAB's HTTP interface. Progress is shown in a waitbar, in a progress dialog attached to an app figure, or in the Command Window. It includes the transferred size, the percentage and an estimate of the remaining time.## Requirements and installationIt is recommended to use **MATLAB R2019b** or later.The following MathWorks products are required:- MATLABInstall the toolbox from MATLAB's Add-On Explorer or from File Exchange. To use a clone of this repository, add src/webprogress to the MATLAB path.## Getting startedThe functions live in the webprogress namespace, so each call is qualified with webprogress.``matlab% Download a file. Progress is shown in a waitbar.url = "https://proof.ovh.net/files/100Mb.dat";webprogress.download(fullfile(tempdir, "100Mb.dat"), url)% Show progress in the Command Window instead, with the file namewebprogress.download(fullfile(tempdir, "100Mb.dat"), url, ... "DisplayMode", "Command Window", "ShowFilename", true)% Upload a file with a PUT request to a URL that accepts uploads,% for example a presigned upload URL from a storage servicewasSuccess = webprogress.upload("results.mat", uploadUrl);`The download target is saved exactly as given, without an added extension, and replaces an existing file. Give a folder instead of a file path to save under the name the server reports.Run progressDialogDemo` to see the waitbar and a progress dialog in an app figure.## ContributingPlease see the Contributing guidelines and the Developer notes## LicenseThis project is available under the MIT License. See the LICENSE file for details.## AuthorEivind Hennestad (ehennestad@gmail.com)
---------
📥 Download IT Bot — 下载几乎所有媒体到您的手机或电脑。
# HTTP Progress Barhttps://img.shields.io/github/v/release/ehennestad/http-progressbar-matlab?label=version">https://github.com/ehennestad/http-progressbar-matlab/actions/workflows/run-codespell.yml/badge.svg">Download and upload files over HTTP with a live progress display## DescriptionDownload files from the web and upload files to the web while showing live progress, using MATLAB's HTTP interface. Progress is shown in a waitbar, in a progress dialog attached to an app figure, or in the Command Window. It includes the transferred size, the percentage and an estimate of the remaining time.## Requirements and installationIt is recommended to use **MATLAB R2019b** or later.The following MathWorks products are required:- MATLABInstall the toolbox from MATLAB's Add-On Explorer or from File Exchange. To use a clone of this repository, add src/webprogress to the MATLAB path.## Getting startedThe functions live in the webprogress namespace, so each call is qualified with webprogress.``matlab% Download a file. Progress is shown in a waitbar.url = "https://proof.ovh.net/files/100Mb.dat";webprogress.download(fullfile(tempdir, "100Mb.dat"), url)% Show progress in the Command Window instead, with the file namewebprogress.download(fullfile(tempdir, "100Mb.dat"), url, ... "DisplayMode", "Command Window", "ShowFilename", true)% Upload a file with a PUT request to a URL that accepts uploads,% for example a presigned upload URL from a storage servicewasSuccess = webprogress.upload("results.mat", uploadUrl);`The download target is saved exactly as given, without an added extension, and replaces an existing file. Give a folder instead of a file path to save under the name the server reports.Run progressDialogDemo` to see the waitbar and a progress dialog in an app figure.## ContributingPlease see the Contributing guidelines and the Developer notes## LicenseThis project is available under the MIT License. See the LICENSE file for details.## AuthorEivind Hennestad (ehennestad@gmail.com)
---------
📥 Download IT Bot — 下载几乎所有媒体到您的手机或电脑。
M5Stack support for MATLABConnect to an M5Stack ESP32 based device using the MATLAB Support Package for Arduino hardware. This Custom Arduino Add-On Library allows you to communicate with the integrated peripherals on M5Stack(IMU,LCD,MIC,PMU,SPKR,etc.) using the M5Unified & M5GFX Arduino Libraries. To get started, you need:MATLAB.ESP32 based M5Stack (Core, Core2, Stick, Stick2,Atom).MATLAB Support Package for Arduino hardware.M5Unified & M5GFX Arduino Libraries installed in the arduino libraries folder.M5Unified Add-On Library for Arduino (this).Connecting to the M5StackOnce the environment is set up, we will create two objects in our workspace. An 'arduino' object that represents the ESP32 microcontroller .An 'addon' object that represents the M5Unified Libraries & the devices M5Unified controls. First: Initialize communication with the ESP32 inside the M5Stack. Example:esp32 = arduino('COM6','ESP32-WROOM-DevKitC','Libraries',{'I2C','M5Stack/M5Unified'});Second: Initialize the M5Unified Arduino Add-On Library. Example:M5Unified = addon(esp32,'M5Stack/M5Unified');Controlling the M5StackUse the 'arduino' object namespace to communicate with the ESP32. Example: esp32.writeDigitalPin('D32',0); esp32.readVoltage('D33');Use the 'addon' object namespace to communicate with the M5Stack components. Example: M5Unified.lcdPrint('Hello');NotesThis Library is in active development and more features will be added over time. Created using MATLAB 2024a, it likely works with any version of the arduino support packages that supports ESP32.Developed using the M5 Core2 for AWS, and some testing with the M5 StickC has been done.
Please open Telegram to view this post
VIEW IN TELEGRAM
📡 MATLAB Central - File Exchange - rating:5.0 | Spectral proper orthogonal decomposition (SPOD)
# Spectral Proper Orthogonal Decomposition in MatlabSPOD() is a Matlab implementation of the frequency domain form of proper orthogonal decomposition (POD, also known as principle component analysis or Karhunen-Loève decomposition) called spectral proper orthogonal decomposition (SPOD). SPOD is derived from a space-time POD problem for stationary flows https://arxiv.org/abs/1708.04393">[1,2] and leads to modes that each oscillate at a single frequency. SPOD modes represent dynamic structures that optimally account for the statistical variability of stationary random processes.The large-eddy simulation data provided along with this example is a subset of the database of a Mach 0.9 turbulent jet described in [3] and was calculated using the unstructured flow solver Charles developed at Cascade Technologies. If you are using the database in your research or teaching, please include explicit mention of Brès et al. [3]. The test database consists of 5000 snapshots of the symmetric component (m=0) of a round turbulent jet. spod.m is a stand-alone Matlab function with no toolbox dependencies. All other Matlab files contained in this repository are related to the six examples that demonstrate the functionality of the code (see file descriptions below). A physical interpretation of the results obtained from the examples can be found in [4]. The reference for the frequency-time analsyis is https://arxiv.org/abs/2011.03644">[5].spod_adaptive.m is the adaptive sine-taper SPOD algorithm for broadband-tonal flows by Yeung & Schmidt [7]## Download### Using your browserRepository zip file with examples (81.5 MB): https://github.com/SpectralPOD/spod_matlab/archive/master.zipMatlab function only (15 KB): https://raw.githubusercontent.com/SpectralPOD/spod_matlab/master/spod.m### Using Git in the terminalgit clone https://github.com/SpectralPOD/spod_matlab.git## Files| File | Description || ------------- |:-------------|| spod.m | Spectral proper orthogonal decomposition in Matlab | | spod_adaptive.m | Adaptive sine-taper SPOD in Matlab || example_1.m | Inspect data and plot SPOD spectrum | | example_2.m | Plot SPOD spectrum and inspect SPOD modes | | example_3.m | Specify spectral estimation parameters and use weighted inner product | | example_4.m | Calculate the SPOD of large data and save results on hard drive | | example_5.m | Calculate full SPOD spectrum of large data | | example_6.m | Calculate and plot confidence intervals for SPOD eigenvalues | | example_7_FTanalysis.m | Frequency-time analysis || example_8_invspod.m | Band-pass filtering using (inverse) SPOD || example_9_multitaperWelch | SPOD using Multitaper-Welch estimators | | example_10_sineAdaptive | Adaptive SPOD example| | tcoeffs.m | Time-continuous expansion coefficients via convolution || invspod.m | Inversion of SPOD using block-wise expansion coefficients | | jet_data/getjet.m | Interfaces external data source with SPOD() (examples 4-5) | | utils/trapzWeightsPolar.m | Integration weight matrix for cylindrical coordinates (examples 3-6) | | utils/jetLES.mat | Mach 0.9 turbulent jet test database | | LICENSE.txt | License | ## Usage[L,P,F] = SPOD(X) returns the spectral proper orthogonal decompositionof the data matrix X whose first dimension is time. X can have anynumber of additional spatial dimensions or variable indices. Thecolumns of L contain the modal energy spectra. P contains the SPODmodes whose spatial dimensions are identical to those of X. The firstindex of P is the frequency and the last one the mode number ranked indescending order by modal energy. F is the frequency vector. If DT isnot specified, a unit frequency sampling is assumed. For real-valueddata, adjusted one-sided eigenvalue spectra are returned. AlthoughSPOD(X) automatically chooses default spectral estimation parameters,the user is encouraged to manually specify problem-dependent parameterson a case-to-case basis.[L,P,F] = SPOD(X,WINDOW) uses a
---------
📥 Download IT Bot — 下载几乎所有媒体到您的手机或电脑。
# Spectral Proper Orthogonal Decomposition in MatlabSPOD() is a Matlab implementation of the frequency domain form of proper orthogonal decomposition (POD, also known as principle component analysis or Karhunen-Loève decomposition) called spectral proper orthogonal decomposition (SPOD). SPOD is derived from a space-time POD problem for stationary flows https://arxiv.org/abs/1708.04393">[1,2] and leads to modes that each oscillate at a single frequency. SPOD modes represent dynamic structures that optimally account for the statistical variability of stationary random processes.The large-eddy simulation data provided along with this example is a subset of the database of a Mach 0.9 turbulent jet described in [3] and was calculated using the unstructured flow solver Charles developed at Cascade Technologies. If you are using the database in your research or teaching, please include explicit mention of Brès et al. [3]. The test database consists of 5000 snapshots of the symmetric component (m=0) of a round turbulent jet. spod.m is a stand-alone Matlab function with no toolbox dependencies. All other Matlab files contained in this repository are related to the six examples that demonstrate the functionality of the code (see file descriptions below). A physical interpretation of the results obtained from the examples can be found in [4]. The reference for the frequency-time analsyis is https://arxiv.org/abs/2011.03644">[5].spod_adaptive.m is the adaptive sine-taper SPOD algorithm for broadband-tonal flows by Yeung & Schmidt [7]## Download### Using your browserRepository zip file with examples (81.5 MB): https://github.com/SpectralPOD/spod_matlab/archive/master.zipMatlab function only (15 KB): https://raw.githubusercontent.com/SpectralPOD/spod_matlab/master/spod.m### Using Git in the terminalgit clone https://github.com/SpectralPOD/spod_matlab.git## Files| File | Description || ------------- |:-------------|| spod.m | Spectral proper orthogonal decomposition in Matlab | | spod_adaptive.m | Adaptive sine-taper SPOD in Matlab || example_1.m | Inspect data and plot SPOD spectrum | | example_2.m | Plot SPOD spectrum and inspect SPOD modes | | example_3.m | Specify spectral estimation parameters and use weighted inner product | | example_4.m | Calculate the SPOD of large data and save results on hard drive | | example_5.m | Calculate full SPOD spectrum of large data | | example_6.m | Calculate and plot confidence intervals for SPOD eigenvalues | | example_7_FTanalysis.m | Frequency-time analysis || example_8_invspod.m | Band-pass filtering using (inverse) SPOD || example_9_multitaperWelch | SPOD using Multitaper-Welch estimators | | example_10_sineAdaptive | Adaptive SPOD example| | tcoeffs.m | Time-continuous expansion coefficients via convolution || invspod.m | Inversion of SPOD using block-wise expansion coefficients | | jet_data/getjet.m | Interfaces external data source with SPOD() (examples 4-5) | | utils/trapzWeightsPolar.m | Integration weight matrix for cylindrical coordinates (examples 3-6) | | utils/jetLES.mat | Mach 0.9 turbulent jet test database | | LICENSE.txt | License | ## Usage[L,P,F] = SPOD(X) returns the spectral proper orthogonal decompositionof the data matrix X whose first dimension is time. X can have anynumber of additional spatial dimensions or variable indices. Thecolumns of L contain the modal energy spectra. P contains the SPODmodes whose spatial dimensions are identical to those of X. The firstindex of P is the frequency and the last one the mode number ranked indescending order by modal energy. F is the frequency vector. If DT isnot specified, a unit frequency sampling is assumed. For real-valueddata, adjusted one-sided eigenvalue spectra are returned. AlthoughSPOD(X) automatically chooses default spectral estimation parameters,the user is encouraged to manually specify problem-dependent parameterson a case-to-case basis.[L,P,F] = SPOD(X,WINDOW) uses a
---------
📥 Download IT Bot — 下载几乎所有媒体到您的手机或电脑。
Teaching Live Online Courses in the Age of Artificial Intelligence
via MATLAB and Python Recipes for Earth Sciences (author: Martin H. Trauth)
via MATLAB and Python Recipes for Earth Sciences (author: Martin H. Trauth)
Analytic Hierarchy Process (AHP) is a simple technique, developed by Thomas L. Saaty in the 1970s, for organizing and analyzing complex multi-objective decisions. It combines both quantitative and qualitative analysis elements and it finds application in group decision making. The philosophy of the technique is to decompose problem into a hierarchy of more easily understood sub-problems, each of which can be analyzed independently. Once the hierarchy is built, the decision makers systematically evaluate its various elements by comparing them to one another two at a time, with respect to their impact on an element above them in the hierarchy. The AHP converts these evaluations to numerical values that can be processed and compared over the entire range of the problem. A numerical weight is derived for each element of the hierarchy, allowing diverse and often incommensurable elements to be compared to one another in a rational and consistent way. In the final step of the process, numerical weights are calculated for each of the decision alternatives. These weights represent the alternatives' relative ability to achieve the goal.The function facilitates the following:• Simple AHP implementation• Multiple decision makers• Analytic Network Process (ANP): The generalization of the AHP, which incorporates dependences and feedbacks between decision criteria and options.• Fuzzy AHP and ANP: This are special versions of the simple AHP and ANP, which find application in fuzzy environments, where the relative importance of the decision criteria and the alternatives is uncertain.• Simulation: A Monte-Carlo simulation-based approach of AHP and ANP, which allows to compare distributions of weights and performs sensitivity analysis.• Cost-Benefit analysis: The benefit (AHP weights) in relationship with the cost of the respective option.• Optimization: In case of a resource allocation problem, the function estimates the optimal feasible combination of alternatives subject to the resources’ constraints.• Prediction combination: In case this is a forecasting combination problem, the function generates a weighted average forecast, using the combination weights and the individual forecasts as inputs.The package includes AHP Decision Studio, a graphical interface for users who prefer to work without writing code.The interface guides users through defining alternatives and criteria, assessing criterion importance, entering pairwise comparisons or numerical performance values, and reviewing the results. It includes:• Dropdown-based pairwise comparisons and numerical criteria where higher or lower values are preferred.• Ranking charts, results tables, and criterion-level priorities.• Sensitivity analysis with mean weights and percentile ranges.• Optional fuzzy approximation, network feedback, benefit–cost analysis, and budget-constrained selection.• Project saving and reopening, CSV export, and chart export as PNG.• A ready-to-run example and a user guide.To launch the interface, open START_HERE.m in MATLAB and click Run. No code editing is required. The interface supports a single decision maker and one cost resource.The ahp.m function remains fully usable independently of the interface. Users can call it directly from the MATLAB Command Window or their own scripts, including for multiple decision makers, multiple resource constraints, and forecast combination. Place ahp.m in your working folder or on the MATLAB path.The graphical interface requires MATLAB R2020b or newer. Budget-constrained optimization requires Optimization Toolbox.
---------
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
The function SIP2NUM converts a string with an SI prefix (aka metric prefix, or engineering prefix) into a numeric value. For example the string '1 k' is converted to 1000. The bonus function BIP2NUM converts from Binary-prefixed string to numeric, for example the value '1 Ki' is converted to 1024.After testing many submissions on MATLAB FEX (see Acknowledgements) and not finding a single one that converted all values correctly, I wrote my own functions. And then exhaustively tested them to confirm that they actually give the correct output.This submission:Automatically detects the prefix, or it may be restricted to either a name or symbol.Detects coefficients including +/- sign, decimal digits, and exponent E-notation.Detects zero or more coefficients in the string.Returns the parts of the input string that are split by the detected coefficients and prefixes.Returns the number of significant figures detected in the coefficients.Includes the prefixes added in November 2022: ronna, quetta, ronto, and quecto.Reverse Conversionhttp://www.mathworks.com/matlabcentral/fileexchange/33174-number-to-scientific-prefixSI Prefix Examples>> sip2num('10 k') % OR sip2num('10.0 kilo') OR sip2num('10000') OR sip2num('1e4')ans = 10000>> [num,spl] = sip2num("Power: 200 megawatt")num = 200000000spl = ["Power: ","watt"]>> [num,spl,sgf] = sip2num("from -3.6 MV to +1.24kV potential difference.")num = [-3600000,1240]spl = ["from ","V to ","V potential difference."]sgf = [2,3]>> [num,spl] = sip2num("100 meter","meter") % Try it without the second option.num = 100spl = ["","meter"]>> sip2num(num2sip(9e12)) % 9 tera == 9e12 == 9*1000^4 == 9000000000000ans = 9000000000000Binary Prefix Examples>> bip2num('10 Ki') % OR bip2num('10.0 kibi') OR bip2num('10240') OR bip2num('1.024e4')ans = 10240>> [num,spl] = bip2num("Memory: 200 mebibyte")num = 209715200spl = ["Memory: ","byte"]>> [num,spl,sgf] = bip2num("From -3.6 MiB to +1.24KiB data allowance.")num = [-3774873.6,1269.76]spl = ["From ","B to ","B data allowance."]sgf = [2,3]>> [num,spl] = bip2num("100 Pixel","Pixel") % Try it without the second option.num = 100spl = ["","Pixel"]>> bip2num(num2bip(pow2(9,40))) % 9 tebi == pow2(9,40) == 9*1024^4 == 9895604649984ans = 9895604649984SI Prefixes (Bureau International des Poids et Mesures) Magnitude | Symbol | Name 1000^-10 | q | quecto 1000^-9 | r | ronto 1000^-8 | y | yocto 1000^-7 | z | zepto 1000^-6 | a | atto 1000^-5 | f | femto 1000^-4 | p | pico 1000^-3 | n | nano 1000^-2 | µ | micro 1000^-1 | m | milli 1000^0 | | 1000^+1 | k | kilo 1000^+2 | M | mega 1000^+3 | G | giga 1000^+4 | T | tera 1000^+5 | P | peta 1000^+6 | E | exa 1000^+7 | Z | zetta 1000^+8 | Y | yotta 1000^+9 | R | ronna 1000^+10 | Q | quettaBinary Prefixes (IEC 60027-2 A.2 and ISO/IEC 80000-13:2008) Magnitude | Symbol | Name 1024^1 | Ki | kibi 1024^2 | Mi | mebi 1024^3 | Gi | gibi 1024^4 | Ti | tebi 1024^5 | Pi | pebi 1024^6 | Ei | exbi 1024^7 | Zi | zebi 1024^8 | Yi | yobiNotesThese functions have been extensively tested against many edge cases, with particular attention to ensuring the correct handling of exponential notation. Compared to similar submissions available on MATLAB File Exchange, these functions correctly:parse negative strings (try '-1').parse E-notation values (try '1e0', '1e0 k', '1e30').
Please open Telegram to view this post
VIEW IN TELEGRAM
fHAND – a fuzzy approach to computing height above nearest drainage
via TopoToolbox (author: wschwanghart)
via TopoToolbox (author: wschwanghart)
TopoToolbox
fHAND – a fuzzy approach to computing height above nearest drainage
The previous blog post was about slope position (or fractional relief), a metric that quantifies the position of each pixel between the river and the ridge. The approach uses multiple flow directio…