How can I fix matrix and integration errors in my MATLAB code?

  • Context: MATLAB 
  • Thread starter Thread starter krnhseya
  • Start date Start date
  • Tags Tags
    Matlab Matrix
Click For Summary

Discussion Overview

The discussion revolves around troubleshooting errors encountered in MATLAB code related to matrix operations and integration. Participants seek solutions for issues arising from matrix dimensions and function integration, focusing on both theoretical understanding and practical coding challenges.

Discussion Character

  • Technical explanation
  • Debate/contested
  • Mathematical reasoning
  • Homework-related

Main Points Raised

  • Participants report an error when attempting to use the matrix power operator on non-square matrices, questioning the correct usage of operators in MATLAB.
  • One participant describes losing elements in derivatives, noting the resulting dimensions of derivative matrices and seeking advice on how to manage these changes.
  • Another participant shares code snippets and experiences similar errors, prompting discussions about the distinction between matrix and array operations in MATLAB.
  • There is a query regarding the implementation of conditional statements in MATLAB, particularly how to handle matrix comparisons within if statements.
  • A participant seeks help with integrating a function in MATLAB, encountering dimension mismatch errors, and requests clarification on the function's implementation.

Areas of Agreement / Disagreement

Participants generally agree on the importance of using the correct operators for matrix versus array operations. However, there is no consensus on the best approach to resolve the integration errors or the conditional statement issues, as multiple perspectives and potential solutions are presented.

Contextual Notes

Participants express uncertainty about the correct syntax for conditional statements in MATLAB, particularly regarding matrix forms. There are also unresolved questions about the integration function's implementation and the handling of matrix dimensions in various operations.

Who May Find This Useful

This discussion may be useful for MATLAB users encountering similar matrix operation errors, those learning about function integration in MATLAB, and individuals seeking clarification on conditional programming structures in MATLAB.

krnhseya
Messages
102
Reaction score
0
Hello, I've got quick questions.
1. When I have a matrix, x, and try to get different values for each x (given y = (x^2)+b),
I get this error.

? Error using ==> mpower
Matrix must be square.

2. x is [1x101] double according to MATLAB and I've had this problem when I was taking derivative as well. I've lost numbers throughout the derivative, which i understands.
so x' = [1x100] and x'' = [1x99] and so forth.

What's the best way to solve these problems.
Thank you.
 
Physics news on Phys.org
krnhseya said:
Hello, I've got quick questions.
1. When I have a matrix, x, and try to get different values for each x (given y = (x^2)+b),
I get this error.

? Error using ==> mpower
Matrix must be square.

2. x is [1x101] double according to MATLAB and I've had this problem when I was taking derivative as well. I've lost numbers throughout the derivative, which i understands.
so x' = [1x100] and x'' = [1x99] and so forth.

What's the best way to solve these problems.
Thank you.

Can you post your code? I don't really understand your question.
 
>> x=sqrt(500/105);
>> a=[0:0.1:100];
>> b=[0:1:100];
>> z=a/(2*(sqrt(3000*15)));
>> p=x(sqrt(1-((z)^2)))
? Error using ==> mpower
Matrix must be square.

this is not the direct problem but it's basically the same thing.
Why am I getting this error?

I will hold onto my second question for now.

[edit] another question...

>> x=A*(exp(-(z*wn*t)))*(sin(wd*t))
? Error using ==> mtimes
Inner matrix dimensions must agree.

everything is numeric except t is in matrix...
 
Last edited:
krnhseya said:
>> x=sqrt(500/105);
>> a=[0:0.1:100];
>> b=[0:1:100];
>> z=a/(2*(sqrt(3000*15)));
>> p=x(sqrt(1-((z)^2)))
? Error using ==> mpower
Matrix must be square.

this is not the direct problem but it's basically the same thing.
Why am I getting this error?

It looks like you are using the matrix power operator ^ where you should be using the array power operator .^ . The matrix power operator A^n multiplies the matrix A by itself n times, which means the number of columns in A must be equal to the number of rows in A, which means that A must be square (size(A) = [m x m] for some positive integer m). The array power operator A.^n raises each element of A to the nth power, and therefore has no restrictions on the dimensions of A.

another question...

>> x=A*(exp(-(z*wn*t)))*(sin(wd*t))
? Error using ==> mtimes
Inner matrix dimensions must agree.

everything is numeric except t is in matrix...

Once again, it looks like you are using a matrix operator where you should be using an array operator. Try (exp(-z*wn*t))) .* (sin(wd*t))
 
thanks a lot! I've got another question...sorry.

i am given that function and there are two independent variables, t and a, which i posted above. i am told that it's initial displacement is zero but it "dies out" after about t=2.
so basically, after x has been graphed up to t<2 and when t hits 2 seconds mark, i think everything converges to zero i believe.

i tried everything without using mfile but i couldn't figure out so i thought i should use mfile instead so I've retyped everything under...



t=[0:0.1:10];
b=[0:1:100];

if 0=<t<2 (BTW, if i want less than equal to 0, i should use =< instead of <= right?)
all the components that vary by a and b goes under if statement including equation of x
else
x=0
end
plot(t,x)


that's what I've tried but it doesn't seem like i am getting what i wanted. it graphes entire 10s and under mfile, it states something like i can't use this, "0=<t<2", because it's in matrix form but i can't think of any other way to approact this problem.
i've thought about while loop and etc. but it seems like that my if,while,and other statements are not working because of how t is in matrix.

i really appreciate your help.
 
Help with integrating function in Matlab

Hi I'm trying to integrate a function func1 in Matlab but I keep getting errors I really don't know what I'm doing wrong. Can anyone tell me?

Here is the code I am using:

function [ f1 ] = func1( E, Delta, kB, Temp )
%func1: calculates integrand for eqn 1
% Detailed explanation goes here
f1=(tanh(sqrt(((E*E)+(Delta*Delta))))/(2*kB*Temp))/(2*(sqrt(((E*E)+(Delta*Delta)))));
end

Command line code:

>> hbar=1.054E-34; Tdebye=420; h=6.626E-34; kB1= 1.38065E-23;
>>fdebye=(Tdebye*kB1)/h;
>> Temp1=0.5;
>> Delta1=0;
>> a=hbar*fdebye;
>> Q=quad(@(E1)func1(E1,0,1.38065E-23,0.5),-a,a)

? Error using ==> mtimes
Inner matrix dimensions must agree.

Error in ==> func1 at 4
f1=(tanh(sqrt(((E*E)+(Delta*Delta))))/(2*kB*Temp))/(2*(sqrt(((E*E)+(Delta*Delta)))));

Error in ==> @(E1)func1(E1,0,1.38065E-23,0.5)


Error in ==> quad at 77
y = f(x, varargin{:});
 

Similar threads

  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 4 ·
Replies
4
Views
4K
  • · Replies 5 ·
Replies
5
Views
4K
  • · Replies 4 ·
Replies
4
Views
2K
Replies
5
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
Replies
1
Views
3K
  • · Replies 11 ·
Replies
11
Views
3K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K