Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x

MATLAB Programming

373

Solutions

443

Contributors

MATLAB is a numerical computing environment and proprietary fourth-generation programming language. MATLAB allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages, including C, C++, Java, Fortran and Python. Although MATLAB is intended primarily for numerical computing, an optional toolbox uses the MuPAD symbolic engine, allowing access to symbolic computing capabilities. An additional package, Simulink, adds graphical multi-domain simulation and model-based design for dynamic and embedded systems.

Share tech news, updates, or what's on your mind.

Sign up to Post

When I compile my mex with the "-g" argument, a PDB file is created which allows me to Attach to the Matlab Process.

This works OK.

However, I'm finding that if I change any part of the source code, then recompile the mex and Attach to Matlab again, my breakpoints are not ever hit again.

The solution is to exit Matlab, restart Matlab, rebuild the  mex and re-attach.  Then, magically, it works again.

But it's a royal pain to have to continue exiting Matlab every time I make a small code change.

Does anyone know what the solution is?

Thanks,
0
Enroll in September's Course of the Month
LVL 10
Enroll in September's Course of the Month

This month’s featured course covers 16 hours of training in installation, management, and deployment of VMware vSphere virtualization environments. It's free for Premium Members, Team Accounts, and Qualified Experts!

Hi,
I am trying to check integration using two different methods, first by using [function (int)] and second by using summation. I am integration from high to low values (0.1 to 0). I got same result. However, from function I got positive value (0.005) and from summation, negative value (-0.005).  I am not sure if that because I am integrating from high to low values so I need to use (dr) in negative value when finding the integration using summation.

I used below code

 
 clear all;
  clc;
  syms x y 
  y = -x; 
  z=int(y,x);
  v=[0:0.1/19:0.1];
  dr=0.1/20;
  for i=1:20
      x=v(i);  
      kk(i)=eval(y)*(dr);    
  end
  R1=sum(kk(1,:));
  x=0.1;
  z1=eval(z);
  x=0;
  z2=eval(z);
  R2=z2-z1;

Open in new window

0
You can refer to section 4.3.1 in this article if you want.

Problem: Given a reference point and a direction, I need to find the core of a line scratch.


  1. To do that, according to the article, I need to select a prominent point on the line-scratch and that point would be used as the reference point pR.
  2. Then start a search from that reference point, proceeding on both sides of the line along the direction dS.
  3. If pI is our current point at column k (shown in yellow here),
    • take 5 points adjacent to pI at column k+1 (shown in blue here).
    • find the point with the largest similarity value.
    • add the point to the core.

pixel-candidatesWe will use a specific function as the similarity measure. That function uses correlation, among other things, as a measure.

equation
  1. pI is the i-th pixel at the column-k.
  2. w1 and w2 are constants with values 0.75 and 0.25 respectively.
  3. cG is a global correlation factor measured between a matrix centered at pR and another matrix pKi which has a center at pI.
  4. g is a Gaussian function computed at pI.
  5. cL is a local correlation factor measured between a matrix centered at pK_1s and another matrix pKi which has a center at pI.
  6. pK_1s is the last included point at the core.

Implementation
Please, see the source code later in this question.

What is the problem I am facing right now?
 
  1.  I am not sure whether the matrices (i.e. pKi, matrix around pR, pI and so on) I am using are taken correctly.
  2.  I am not sure about the usage of dS.
0
I am very new to image processing and Matlab. I am working with RGB image and used SLIC algorithm to generate superpixel for an image. By using regionprops to calculate the superpixel properties.

[Rcounts binlocations]=imhist(ImageRED);
[Gcounts binlocations]=imhist(ImageGREEN);
[Bcounts binlocations]=imhist(ImageBLUE);
Q1: I have 48 superpixels with Counts(R,G,B channels) it is giving me 256*1 double(most of them are zero). Can anybody explain how to refine them to get each superpixel histogram?

Q2: How can I compare and calculate the distance between two specific superpixel histograms?

Any help is greatly appreciated. Thanks in advance
0
how can I add a constraint for vibration damper in a SUV vehicle model meant to demonstrate a rollover
0
Hi,

I have a covariance matrix and I am using Matlab's chol function for cholesky decomposition. However, since my matrix is not a positive definite matrix. I am getting an error. How can I figure out which correlations/covariances in the matrix are leading to the problem.

Attached file contains the matrix.

Thanks
EE1.xlsx
0
How to write program for  encryption and decryption input text using RC4 algorithm in Matlab?
0
how i can apply fuzzy logic for this problem? Or is there any other technique i can use for my problem?

Input : parameter values Output : (1) OLTP , (2) DSS , (3) % of OLTP and % of DSS

I have to classify between 3 classes as OLTP, DSS and mix type. if my input matches with OLTP or DSS type it return crisp class. if it matches with mix type it returns the percentage of OLTP and DSS
0
How can i apply fuzzy logic for this problem? Or is there any other technique i can use for my problem?

Input : parameter values Output : (1) OLTP , (2) DSS , (3) % of OLTP and % of DSS

I have to classify between 3 classes as OLTP, DSS and mix type. if my input matches with OLTP or DSS type it return crisp class. if it matches with mix type it returns the percentage of OLTP and DSS.
0
Two vehicles update their position using latitude and longitude using .csv file. Plot the graph for two vehicles in a single graph to detect the collision.
0
On Demand Webinar - Networking for the Cloud Era
LVL 10
On Demand Webinar - Networking for the Cloud Era

This webinar discusses:
-Common barriers companies experience when moving to the cloud
-How SD-WAN changes the way we look at networks
-Best practices customers should employ moving forward with cloud migration
-What happens behind the scenes of SteelConnect’s one-click button

I have attached the file of Matlab output. How to detect the intersection points red dots. Whenever it detect the red dot at intersection alert message should be displayed.
curveintersectionsexample.png
0
As a part of my project, I want to encrypt user defined data using an unbreakable encryption algorithm. I have got one AES algorithm. But it accepts plaintext as
 plaintext_hex = {'00' '11' '22' '33' '44' '55' '66' '77' ...
                 '88' '99' 'aa' 'bb' 'cc' 'dd' 'ee' 'ff'};
I am doing my project in matlab.
0
Question :You are to simulate the motion of a drunken sailor (i.e. a random walk problem).  The sailor is standing at the middle of a pier on the shore side.  The sailor’s ship is directly across from him.The pier size is L paces long and W paces wide (i.e. the sailor starts at coordinates ½ W, 0 and the ship is L paces away) and the ship stretches across the entire width of the pier.Due to the sailor’s inebriated condition a straight walking path cannot be maintained.  Each second the sailor attempts to take a step.  There is a 25% chance that the sailor will go left, a 20% chance the sailor will go right, a 10% chance the sailor will stand still, and a 45% chance the sailor will go forward.  Assume the sailor does not go backwards.If the sailor’s position exceeds the dimensions of the pier (zero to W) they fall into the sea.  If they make it to the other side they are safe at their ship.Write a  Matlab program(script file) that takes L and W as user inputs.  The motion of the sailor is then simulated.  If the sailor falls into the sea an appropriate message should be output.  If the sailor makes it to the ship the time and number of paces it took them should be output.  For either case a plot showing the sailor’s path should be made.
Hint: Use evenly distributed random numbers to determine what direction the sailor goes.
0
Hi, I am beginner in Matlab, need help or advise on how to do this? If i have 2 image in gallery (one basketball image and one badminton image)-Basketball.JPG/Badminton.JPG I created GUI. Then i am able to upload the one of the image. But how do i compare this upload image with the 2images in gallery. So that if uploaded image matches Basketball, it will display Basketball. and if uploaded image matches Badminton,it will display Badminton.
0
Hi

I have .csv file with two cols . I need to take 13 values from 1st col then 13 values from 2nd cols and make then as one row with 26 col

until the end of file .
zju_25_5.csv
0
Hi

in the following code I'm searching for a match of indexes between 2 files , if I found a match take -6,6 elements from the 1st file .

I need to save the found data as (1,13) . (data ) array shows the elements as I print it when I run the code  but after finishing executing only the last element is saved .

earFilename = 'EAR_v1.txt';
stateFilename = 'output_close_tags_video_1.txt';

% read EAR values
 earfile = fopen(earFilename,'r');
 formatSpec = '%d %f %f';
 sizeA = [3 Inf];

earVector = fscanf(earfile, formatSpec, sizeA);
earVector = earVector';

% read state file
 statefile = fopen(stateFilename,'r');
 formatSpec = '%d %*s';
 sizeA = [1 Inf];

   stateVector = fscanf(statefile, formatSpec,sizeA);
   stateVector = stateVector';

% create a dataset containing framenumber, EAR, state
dataset = [earVector, -1*ones(size(earVector,1),1)];

% for each positive state, +-6 frame are marked as positive
data=[];
for i = stateVector'
  rowNumber = find(dataset==i);
  for j = -6:6
      data=(rowNumber+j);
      disp(data)

Open in new window

0
I want to find dct of a matrix in c++ just like how it is done in matlab.
Below is the code I used
#include <fftw3.h>
using namespace std;
 double** create2DArray(int row, int col)
{
	 double** arr = new  double*[row];
	for(int i = 0; i < row; i++)
		arr[i] = new  double[col];
	return arr;
}

int main()
{
int m = 3; 
int n = 3;
 	
      /*double a[m][n] =
   	 {
        {0.2, 0.3 ,1},
        {0 ,12 ,5},
        {0.3, 0.3, 1}
   	 };*/

   double** a= create2DArray(m,n); 
   for( int j = 0; j < m;j++ ) 
  	{	
  		for(int i = 0; i < n; i++)
	   		{	
    						a[i][j] = Signal[i]*hamming[i];
			}
  	 }

   double** b= create2DArray(m,n);   
   
    printf("Original vector\n");
	for(int i=0;i<m;i++)
	 {    
	  for(int j = 0 ;j<n;j++)
	     {
	        cout << a[i][j] <<"  " ;
	     }
	cout<< endl;
	}
  
    

    fftw_plan plan = fftw_plan_r2r_2d(n, m,&a[0][0],&b[0][0], FFTW_REDFT10, FFTW_REDFT10, FFTW_ESTIMATE);
    fftw_execute(plan);
      
    printf("DCT\n");
    for(int i=0;i<m;i++)
	{    
	for(int j = 0 ;j<n;j++)
		{
	cout << b[i][j] <<"  " ;
		}
	cout<< endl;
	}

    
    fftw_plan plani = fftw_plan_r2r_2d(n, m,&b[0][0],&a[0][0], FFTW_REDFT01,  FFTW_REDFT01,FFTW_MEASURE);
     fftw_execute(plani);
    
    printf("IDCT\n");

    
   	for(int i=0;i<m;i++)
	{    
	for(int j = 0 ;j<n;j++)
		{
	cout << a[i][j]/(m*n*4) <<"  " ;
		}
	cout<< endl;
	}
   
  
    return 0;
    

Open in new window


1) Matrix a[m][n] is obtained by multiplying signal with hamming window .
2) When I pass Matrix "a" as input to     " fftw_plan plan = fftw_plan_r2r_2d(n, m,&a[0][0],&b[0][0], FFTW_REDFT10, FFTW_REDFT10, FFTW_ESTIMATE); "
I get the following error :
 cannot convert ‘long double*’ to ‘double*’ for argument ‘4’ to ‘fftw_plan_s* fftw_plan_r2r_2d(int, int, double*, double*, fftw_r2r_kind, fftw_r2r_kind, unsigned int)’

How do I pass a matrix  to DCT function using fftw3 ,which is declared as mentioned above .
PS :When I declared it as double a[m][n] = {//Enter the elements}; //when m =640 ; n = 645
It gives Segmentation fault
{Because of which I tried to define matrix a in heap as mentioned but when given to the dct function throws error .}

Can anyone kindly solve my issue .
Thanks in Advance.
0
So I was trying to convert my matlab codes to c++ codes .I was trying to compare the output of all the user defined function written in matlab and c++ . In terms of precision there was slight difference . Something like   " 0.0822219583523415  " the output from matlab   and " 0.082222" from c++ . I ignored such difference at first as the result was similiar to some extent .But when operations like DCT and IDCT is done on vectors with such difference in values , the output I obtained from matlab and c++ DCT /IDCT was very different .
How can I solve this problem ?
0
First of all thank you for your help in advance. My question is regarding Matlab and non-linear Least Square curve fitting in Matlab - in both I am not familiar with.

I have this type of data:

x = [600, 800, 1000, 1200, 1400]; 
y = [0, 02, 04, 0.7, 1];

Open in new window


I am trying to use the following algorithms:

f = @(p,x) (p(3)-p(4))./(1+exp(-(x-p(2))/p(1)))+p(4); 
opts = optimset('Display','off','MaxFunEvals',1000); 
sigfit = lsqcurvefit(f, starting_value, intervals,problong,[],[],opts); 
bisection_point= sigfit(2)-sigfit(1)*log((sigfit(3)-0.5)/(0.5-sigfit(4)))

Open in new window


The only problem I have is the starting value in sigfit variable. What would be the best starting values given the above numbers? Any help please would be extremely appreciated.

The above algorithms are based on lsqcurvefit function found in Matlab. Here is the link: http://uk.mathworks.com/help/optim/ug/lsqcurvefit.html

The X vector is time intervals in milliseconds, whereas the Y vector represents responses some participant made whether those intervals where perceived as close to a short (400ms) or long (1600ms) interval.

I don't understand what starting points mean. Ultimately what I need to do is find the 0.5 point in the Y axis and the corresponding value on the X axis. The solution will be somewhere between 600ms to 1400 ms and probably around the 1200ms mark. I have put the starting value as a vector from 600 to 1400 but, I have no idea whether that is right or what that means. I was hoping someone better equipped than me can help answer this problem precisely :).

Thank you again,
Dritan
0
Free Tool: Site Down Detector
LVL 10
Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

1) The MS Office I used for over 4 years was removed because W10 said that this "starter" office could cause damage.

2) Matlab starts up really fast. But when I enter a command and hit return, the command window gets stuck. In the admin account (which I rarely use), Matlab worked. (I will try re-installing it to see if that helps.) If you have any other suggestions other than reinstalling, I will give them a try.

I ran from the command prompt:
 slmgr /xpr
 and the popup said that Windows is permanently activated.
0
Let's say I already have a function like this
function Result = z(x, y)
Result=-x*y;

Open in new window

Given that function I want to solve this ODE. (the RHS comes from that function)
>> dsolve('Dy=-x*y','y(0)=2','x')
ans =
2*exp(-x^2/2)

Open in new window

However I don't want to update the second bit of code every time the first changes. I was wondering if there's a way for the result to be automatically updated.
0
As an example I could type this to solve an equation analytically
>> dsolve('Dy=-x*y','y(0)=2','x')
ans =
2*exp(-x^2/2)

Open in new window

I would like to evaluate this result numerically eg typing f(2) and the previous result (2*exp(-x^2/2)) would evaluated at 2 giving 0.2707
I could copy paste the previous result and make a a function like this, but I would prefer it to be automatic, otherwise I have to copy paste every time the original function changes.
function y = f(x)
y=2*exp(-x^2/2);

Open in new window

0
I need to implement the equation in attached picture in matlab. It involves 2 summations from 0 to infinity and bessel functions, and I am not sure if I am doing it correctly. Below is my code for the summations. The results I get for the final C value of the whole equation seem reasonable. However, I am questioning my implementation because I have to break out of the loop when my bessel functions evaluate to too large or small. I was wondering if anyone can comment on that, thank you.

sumn = 0;
sumnP = inf;
n = 0;

while abs(sumnP - sumn) > 1e-16
    % m-summation
    summ = 0;
    summP = inf;
    m = 0;
    while abs(summP - summ) > 1e-16
        summP = summ;
        if besseli(2*m+1,(2*n+1)*pi*a/L) ~= 0
        summ = summ + (cos(2*m+1)*ksi*cos(2*m+1)*delta/((2*m+1)^2))...
            *besseli(2*m+2,(2*n+1)*pi*a/L)/besseli(2*m+1,(2*n+1)*pi*a/L);
        else break
        end
        m = m + 1;
        if isnan(summ)
            summ = summP; break;
        end
    end
    sumnP = sumn;
    sumn = sumn + (-1)^n*sin((2*n+1)/2)*(pi*len/L)*summ;
end
equation.jpg
0
I am using MATLAB 2009,I have a micro-structure image and I transformed into greyscale image and then to BW.  Now I want to know the number of pixels along the scale bar (scale bar width is one pixel size), in order to calculate grain size. Please help me to find out How many pixels in the line of specified length with constant width of pixel size. using MATLAB. or suggest me other way to find the grain size from the microstructure image.
Thank you in Advance.
0
I want to find out principal curvatures for a image in MATLAB.  How to find it out and how will be its code in MATLAB
0

MATLAB Programming

373

Solutions

443

Contributors

MATLAB is a numerical computing environment and proprietary fourth-generation programming language. MATLAB allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages, including C, C++, Java, Fortran and Python. Although MATLAB is intended primarily for numerical computing, an optional toolbox uses the MuPAD symbolic engine, allowing access to symbolic computing capabilities. An additional package, Simulink, adds graphical multi-domain simulation and model-based design for dynamic and embedded systems.

Top Experts In
MATLAB Programming
<
Monthly
>