rpanthi

30 Reputation

4 Badges

7 years, 334 days

MaplePrimes Activity


These are questions asked by rpanthi

I am working on an iterative code where I need to save a matrix in an intermediate step. My code is long and it uses a separate data file. So, I am trying to state my problem taking a simple example.

At first, I define a column matrix A0. Using A0, I do some calculations and test some conditions. 
In the next step, I want  to do similar calculations and test some conditions but this time by changing the first element of A0. For the purpose of later use, I need to save the matrix A0 in its original form. I am trying to use the following method but both A0 and A1 (modified A0) turn out to be same.

> restart;
> n := 3;
> A0 := Matrix(n, 1, 1);
> #Do some calculation with A0
> A1 := A0;
> A1[1, 1] := A1[1, 1]+.1*A1[1, 1];
> A1;
> print(A0, A1);

This might be because I set A1:=A0 in the third line. But how do I save A0 in its original form?

 

 

I need to do this with a sequence of a large number of elements but here is my question with a sequence of fewer elements.

a:={10,11,-13,9,20,74,10}:

I want to check each element of the sequence if it is negative. And if any element is negative I want to replace with 0 (or do something else). I tried the following code but it didn't work. 

for k from 1 to 7 do
  if (a[k]<0) then subs(a[k]=0, a) end if:
end do;

Please help me to figure it out. 

I have a column matrix with all the elements 1.

A:=Matrix(100, 1, 1):

I want to generate another matrix B exactly same as A but with one element changed and keeping all other elements to be same. Manually, I could do by following way:

A[1,1]:=1.1;
A;
B:=A;

But I have to do this with each of 100 elements of A. For instance, in step 1 I want only the first element changed into 1.1. In step 2 I want only the second element changed keeping all others to be 1, and go upto 100.

Could anyone give me an easy way to do this? I would like to appreciate your help in advance.

 

 

Page 1 of 1